Creación de un proyecto Docker Compose simple
Ahora que Docker Compose está correctamente instalado y funcionando, creemos un proyecto simple para probar nuestra configuración. Crearemos una aplicación web básica con un servidor web y una base de datos Redis.
Crear un directorio de proyecto
Primero, creemos un directorio dedicado para nuestro proyecto:
mkdir ~/project/docker-compose-test
cd ~/project/docker-compose-test
Crear un archivo Docker Compose
Ahora, creemos un archivo docker-compose.yml usando el editor de texto nano:
nano docker-compose.yml
Copie y pegue el siguiente contenido en el archivo:
version: "3"
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
redis:
image: redis:alpine
Este archivo Docker Compose define dos servicios:
web: Un servidor web Nginx que servirá contenido desde un directorio local
redis: Una base de datos Redis para el almacenamiento en caché o el almacenamiento de datos de sesión
Presione Ctrl+O seguido de Enter para guardar el archivo, luego presione Ctrl+X para salir de nano.
Crear contenido HTML
Creemos una página HTML simple que nuestro servicio web servirá:
mkdir -p html
nano html/index.html
Copie y pegue el siguiente contenido en el archivo:
<!DOCTYPE html>
<html>
<head>
<title>Docker Compose Test</title>
</head>
<body>
<h1>Hello from Docker Compose!</h1>
<p>If you can see this, your Docker Compose setup is working correctly.</p>
</body>
</html>
Presione Ctrl+O seguido de Enter para guardar el archivo, luego presione Ctrl+X para salir de nano.
Ejecutar el proyecto Docker Compose
Ahora, iniciemos nuestro proyecto Docker Compose:
docker-compose up -d
La bandera -d ejecuta los contenedores en segundo plano (modo desasociado). Debería ver una salida similar a:
Creating network "docker-compose-test_default" with the default driver
Pulling web (nginx:alpine)...
Pulling redis (redis:alpine)...
[...]
Creating docker-compose-test_web_1 ... done
Creating docker-compose-test_redis_1 ... done
Verificar que los servicios se estén ejecutando
Verifiquemos que nuestros servicios se estén ejecutando correctamente:
docker-compose ps
Debería ver una salida similar a:
Name Command State Ports
------------------------------------------------------------------------------------
docker-compose-test_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
docker-compose-test_web_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8080->80/tcp
Acceder a la aplicación web
Ahora puede acceder a la aplicación web abriendo un navegador web en la interfaz de LabEx y navegando a http://localhost:8080. Debería ver el mensaje "Hello from Docker Compose!".
Alternativamente, puede usar curl para verificar el servidor web desde la línea de comandos:
curl http://localhost:8080
Debería ver el contenido HTML que creamos anteriormente.
Detener el proyecto Docker Compose
Cuando termine de probar, puede detener el proyecto Docker Compose:
docker-compose down
Debería ver una salida similar a:
Stopping docker-compose-test_web_1 ... done
Stopping docker-compose-test_redis_1 ... done
Removing docker-compose-test_web_1 ... done
Removing docker-compose-test_redis_1 ... done
Removing network docker-compose-test_default
¡Felicidades! Ha instalado Docker Compose con éxito, ha resuelto el error "command not found" y ha probado su configuración con una aplicación simple de múltiples contenedores.