En este tutorial aprenderas a configurar Apache desde un contenedor de Docker
Ejecutar un contenedor de Apache con Docker
Para ejecutar un contenedor de Apache, use el siguiente comando:
docker run -dit --name myapache -p 8080:80 httpd
Verifique el estado de sus contenedores con:
docker ps
Añadir un sitio web al contenedor. Descargue una plantilla gratuita desde Free CSS.
Descomprima la plantilla en su escritorio o en la ubicación deseada.
Abra la consola y navegue al directorio donde extrajo la plantilla (por ejemplo, /home/usuario/Desktop/plantilla).
Detenga y elimine el contenedor anterior:
docker stop myapache
docker rm myapache
Para montar el directorio de la plantilla en el contenedor, ejecute el siguiente comando en Linux o Mac:
docker run -dit --name myapache -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd
En Windows, reemplace $PWD con ${PWD}:
docker run -dit --name myapache -p 8080:80 -v ${PWD}:/usr/local/apache2/htdocs/ httpd
Solucionar Error 403 Forbidden
Si encuentra un error 403 Forbidden, puede deberse a problemas de permisos en el directorio compartido. Para solucionarlo, cambie los permisos del directorio en el host:
sudo chmod -R a+rX "$PWD"
Intente volver a ejecutar el contenedor y verifique si el error persiste.
Organizar archivos en un directorio public_html
Para mantener separados los archivos de configuración y el código de su sitio, coloque todos los archivos en un directorio llamado public_html.
Cree un archivo Dockerfile en la misma ubicación que public_html:
public_html/
Dockerfile
Edite el archivo Dockerfile e incluya lo siguiente:
FROM httpd
COPY ./public_html/ /usr/local/apache2/htdocs/
Construya la imagen de Docker:
docker build -t mi-apache .
Ejecute un nuevo contenedor con la imagen personalizada:
docker run -dit --name myapache2 -p 4000:80 mi-apache
Visite localhost:4000 en su navegador para ver su sitio en funcionamiento.
Docker Compose
Para crear un archivo docker-compose que use docker
version: "3.9"
services:
apache:
image: httpd:latest
container_name: myapache
ports:
- "3000:80"
volumes:
- .:/usr/local/apache2/htdocs
ejecuta luego:
docker compose up
o si en todo caso quieresmas orden puedes crear una carpeta www y colocar alli tu web:
.
├── docker-compose.yml
└── www
└── index.html
y actualizas tu docker-compose.yml de esta forma:
version: "3.9"
services:
apache:
image: httpd:latest
container_name: myapache
ports:
- "3000:80"
volumes:
- ./www:/usr/local/apache2/htdocs