Está en la página 1de 3

Ejecutando Apache en Docker

1. Obtenemos Debian desde el repositorio Docker

Elegimos Debian 10 - Buster

$ docker pull debian:buster

2. Ejecutamos un contenedor con la imagen que acabamos de obtener

Utilizamos el siguiente comando para ver el ID de la imágen obtenida

$ docker images

Obtendremos el siguiente resultado:

REPOSITORY   TAG       IMAGE ID         CREATED     VIRTUAL SIZE


debian         buster   040bf8e08425     5 days ago   125.1 MB

Con el ID de la imagen ejecutamos un nuevo contenedor Debian, el parámetro "-ti" significa que la sesión será
interactiva:

$ docker run -ti 040bf8e08425

Ahora ya estamos dentro del contenedor, deberíamos ver un mensaje similar a este:

root@e4c7575c5a4d:/#

3. Instalación del paquete Debian "apache2" en el contenedor

En el prompt del contenedor, actualicemos los repositorios de Debian Buster:

root@e4c7575c5a4d:/# apt-get -y update

Ahora el sistema está listo para instalar Apache2 y todas sus dependencias. Ejecuta el siguiente comando:

root@e4c7575c5a4d:/# apt-get -y install apache2

Debería llevar algún tiempo extraer todas las dependencias y finalmente instalar el servidor web Apache 2.
Después de esto, continuamos con los ajustes necesarios en el archivo httpd.conf, con todo lo necesario para
que el servidor web esté listo para ejecutarse.

Salgamos del contenedor, escribiendo exit. Deberiamos obtener el indicador de host del servidor anfitrión.
Ahora que tenemos Apache 2 instalado en nuestro contenedor recién creado, es hora de confirmar todos los
cambios para crear una nueva imagen para reflejar los cambios que se acaban de realizar en la imagen original
de Debian Buster.
4. Confirmar los cambios y etiquetar una nueva imagen

Confirmamos los cambios

$ docker commit 040bf8e08425

Después de confirmar, se creará una nueva imagen. Listemos nuevamente las imágenes.

$ docker images

Deberiamos tener una salida similar a esta:

REPOSITORY   TAG       IMAGE ID         CREATED         VIRTUAL SIZE


<none>         <none>   555ee9e0c2ee      4 seconds ago    193.8 MB
debian         buster   040bf8e08425     5 days ago       125.1 MB

Ahora podemos ver la imagen que acabamos de crear con el comando commit

Etiquetamos la nueva imagen, usando la nueva ID de la imagen:

$ docker tag 555ee9e0c2ee debian-apache:v1

Listamos la nueva imagen etiquetada:

$ docker images

REPOSITORY     TAG       IMAGE ID           CREATED         VIRTUAL SIZE


debian-apache v1       555ee9e0c2ee        5 minutes ago   193.8 MB

5. Ejecutando Apache en su propio contenedor

Ahora es el momento de verificar si todo lo que se ha hecho funciona correctamente. En este momento, ya
tenemos nuestro propio contenedor Debian, que está preparado para ejecutar Apache.

Simplemente un recordatorio. Cuando se inicie apache en el contenedor, solo escuchará en la IP del contenedor.
Si se planea proporcionar acceso al servidor web desde el exterior, lo que significa vincular los puertos host, es
necesario exponer los puertos apache. Para lograr eso, es necesario agregar -p <host port: container
port> para cada puerto que planea abrir.

En el siguiente ejemplo, ejecutaremos el contenedor y expondréemos el puerto 8080 en el servidor host,


redirigiendo al puerto 80 del contenedor. Además, proporcionaremos el comando para iniciar apache
(/etc/init.d/apache2 start). También puede reemplazar la identificación de la imagen por un nombre etiquetado
(es decir: debian-apache: v1).

$ docker run -p 8080:80 debian-apache:v1 /usr/sbin/apache2ctl -D FOREGROUND

6. Comprobando la instalación

Para probar si la instalación se realizó correctamente, simplemente introducimos http: //<host ip>: 8080 en el
navegador.

Deberíamos obtener la página de bienvenida predeterminada de Apache2.

También podría gustarte