El primer paso será seguir las instrucciones de la imagen oficial de apache en dockerhub:
Por lo que creamos el siguiente Dockerfile utilizando dicha imagen:
FROM httpd:latest COPY index.html /usr/local/apache2/htdocs/
Preparamos el archivo HTML que queramos dockerizar:
Y una vez hecho esto, lanzamos una imagen con docker buildx a partir de este Dockerfile
docker buildx build --tag server_apache .
Y ahora lanzaremos un contenedor de esta imagen diciendo que el puerto 80 del contenedor será el puerto 9090 de mi máquina Ubuntu:
docker run -d -p 9090:80 ca
Consultamos el puerto 9090 de nuestro Ubuntu y vemos que accedemos correctamente al puerto 80 del contenedor de Apache:
También podemos cargarle la red host a este contenedor de Apache y así no tener que hacer el port forwarding, por lo que ejecutamos lo siguiente al momento de lanzar el contenedor:
docker run -d --network=host ca
Y si accedemos al localhost, veremos el puerto 80 del contenedor, ya que el contenedor utiliza nuestra misma dirección IP: