Hola amigos vamos a ver como crear una imagen en Docker con apache instalado a partir de un contenedor a la cual le hayamos instalado apache2.
Siempre partimos de una imagen previa de Docker, para esto ya tenemos una imagen descargada de ubuntu
Paso 1: Listando las imagenes
Paso 2: Creamos un contenedor
sudo docker run -p 80:80 -it d355ed3537e9
-p 80:80 : Nos permite enlazar el puerto 80 de nuestro Server Local con el puerto 80 del contenedor
d355ed3537e9: Es el Id de la imagen
-it: Asigna un terminal al contenedor y nos permite comunicarnos de forma interactiva
Paso 3: Instalamos apache2 en nuestro contenedor
Debemos de asegurarnos de estar dentro de nuestro contenedor, sino debemos ingresar con el comando attach a nuestro contenedor, estando dentro de nuestro contenedor ejecutamos:
El siguiente comando lo que nos permite es actualizar los repositorios de nuestro contenedor
apt-get update
Instalamos Apache:
apt-get install apache2 -y
Luego de terminar la instalación iniciamos el servicio de Apache:
/etc/init.d/apache2 restart
Salimos de nuestro contenedor sin detener su ejecución con las teclas: Ctrl + p + q
Si nos vamos a un navegador e ingresamos la url: http://127.0.0.1/
veremos el servicio de Apache2 activo.
Paso 4: Creando la imagen de Dokcer.
Listamos el contenedor para ver su ID:
sudo docker ps
Ahora que ya sabemos el Id de nuestro contenedor (65889ca74435) vamos a crear la imagen de Docker.
sudo docker commit --change='CMD ["apache2ctl","-D FOREGROUND"]' -c "EXPOSE 80" 65889ca74435 ubuntuapache
–change: Permite agregar cambios a la nueva imagen que vamos a crear
CMD : Indica que servicios va a ejecutar para nuestro caso es apache2ctl
-D FOREGROUND: para que se ejecute en 2do plano el servicio apache2ctl.
-c: Permite exponer puertos por defecto para el contenedor.
65889ca74435: Id del contenedor a partir del cual crearemos nuestra Imagen de docker.
Si listamos las imágenes podemos ver nuestra imagen creada con ID 90b976030c75
Paso 5: Creamos una nuevo contenedor
Luego de haber creado nuestra imagen de nombre ubuntuapache vamos crear un contenedor a partir de dicha imagen:
sudo docker run -p 9000:80 -itd --name="newapache" ubuntuapache
–name: Nos permite asignarle un nombre personalizado a nuestro contenedor
-d: Permite ejecutar apache en segundo plano
Ahora si vamos nuestro navegador e ingresamos por el puerto: http://127.0.0.1:9000/ veremos a nuestro Servidor Apache:
Podemos acceder a la terminal del contenedor con el comando:
sudo docker exec -it newapache bash
newapache: Es el nombre de nuestro contenedor
Podemos salir del contenedor presionando la tecla: Ctrl + p +q
También podemos detener la ejecución del contenedor
sudo docker stop newapache