Deployment web con Docker con ejemplos
Última actualización
Última actualización
Ya hemos visto lo que es Docker, una plataforma de código abierto para desarrollar, enviar y ejecutar aplicaciones. Es una tecnología que permite incorporar y almacenar su código y sus dependencias en un pequeño paquete llamado imagen.
Vamos a realizar dos ejemplos, uno con una imagen ya creada y la otra más libre:
Primero revisaremos de que images dispone DockerHub de lo que nos interesa:
Para descargar la imagen podemos hace run pull
:
Sin descargar la imagen, también podemos directamente ejecutar un contenedor. Como ejemplo podemos probar a instalar una imagen ya creada de php8 con el siguiente comando:
Docker intenta localizar esa imagen dentro de su disco duro. Si no la encuentra, la busca en una base de datos de imágenes llamada y la descarga. Cuando ya está la imagen en el disco, procede a ejecutarla en segundo plano gracias al parámetro -d.
Después de ejecutar la imagen de PHP 8 en este caso, lo que obtenemos es un contenedor que está iniciado, pero que no es visible a priori. Además del contenedor que está ejecutándose, Docker guarda de forma local una copia de la imagen descargada. Se puede obtener un listado de imágenes con el comando:
Y es posible ver los contenedores que están funcionando con el comando:
Después de lanzar el comando, obtendremos información de todos los contenedores que se encuentran activos. Lo más importante es el atributo CONTAINER_ID
, que identifica al contenedor de manera unívoca, y el IMAGE
, que muestra la imagen desde la que se creó. Desde este punto, es posible entrar en el contenedor para comprobar que está funcionando.
Esto se hace con el comando:
Una vez ejecutado, verás que accedes a un shell del container donde puedes ejecutar otros comandos. Prueba a sacar la versión con:
O prueba a sacar la fecha con:
Para salir del shell simplemente usa el comando exit
.
Creamos un archivo HTML simple que será el contenido de tu sitio web. Puedes utilizar un editor de texto para crear un archivo llamado index.html
. Por ejemplo:
Crea un archivo llamado Dockerfile
en el mismo directorio que tu archivo HTML. Este archivo define cómo se construirá tu imagen de Docker. Puedes usar la imagen oficial de Nginx y copiar tu archivo HTML dentro de ella.
Abre una terminal en el directorio que contiene tu Dockerfile
y el archivo index.html
. Ejecuta el siguiente comando para construir la imagen:
Elige un nombre significativo para tu imagen (en este caso, mi-sitio-web-dockerizado
).
Después de construir la imagen, puedes ejecutar un contenedor basado en ella:
Esto ejecutará el contenedor en segundo plano (-d
), redirigiendo el puerto 8080 de tu máquina host al puerto 80 del contenedor. Puedes cambiar el número del puerto según tus preferencias.
Abre un navegador web y visita http://IPDELHOST:8080
(el puerto configurado antes). Deberías ver tu página web HTML servida por Nginx desde el contenedor de Docker.