4.1 Comando docker compose up
El comando docker compose up
es el comando clave de Docker Compose que permite lanzar aplicaciones multicontenedor definidas en el archivo compose.yaml
. Automáticamente crea y lanza todos los servicios especificados en la configuración, configura las redes y monta los volúmenes. En esta lección, analizaremos en detalle el uso del comando docker compose up
, sus principales parámetros y mejores prácticas.
Funciones principales del comando docker compose up
- Creación y lanzamiento de contenedores: el comando
docker compose up
crea y lanza todos los contenedores especificados en la secciónservices
del archivocompose.yaml
. - Configuración de redes y volúmenes: Docker Compose automáticamente crea las redes necesarias y monta los volúmenes especificados en la configuración.
- Lanzamiento paralelo de servicios: todos los servicios se lanzan en paralelo, lo que acelera el proceso de inicio de aplicaciones multicontenedor.
- Monitorización de logs: el comando muestra los logs de todos los contenedores en tiempo real, lo que permite monitorear su estado y detectar problemas rápidamente.
Sintaxis del comando docker compose up
docker compose up [options] [SERVICE...]
Dónde:
-
[options]
: parámetros adicionales para configurar el comportamiento del comando (por ejemplo,--detach
,--build
,--scale
). -
[SERVICE...]
: (opcional) lista de servicios que se quieren lanzar. Si no se especifica, se lanzan todos los servicios.
4.2 Ejemplos de docker compose up
Ejemplos de cómo usar el comando docker compose up
:
1. Iniciar todos los servicios
Iniciar todos los servicios definidos en el archivo compose.yaml
:
docker compose up
2. Iniciar un servicio específico
Iniciar un servicio específico, por ejemplo, web
:
docker compose up web
3. Iniciar en modo background
Para iniciar todos los servicios en modo background usa la opción -d
(detached mode):
docker compose up -d
Al usar esta opción, el comando terminará inmediatamente después de iniciar los contenedores, y estos continuarán ejecutándose en segundo plano.
4.3 Parámetros del comando docker compose up
Parámetros útiles del comando docker compose up
:
1. Parámetro --build
Este parámetro obliga a Docker Compose a reconstruir las imágenes antes de iniciar los contenedores. Útil si hiciste cambios en el código fuente o en el Dockerfile.
docker compose up --build
2. Parámetro --force-recreate
El parámetro --force-recreate
obliga a Docker Compose a recrear contenedores incluso si su configuración no ha cambiado.
docker compose up --force-recreate
3. Parámetro --no-recreate
El parámetro --no-recreate
evita la recreación de contenedores que ya existen, incluso si su configuración ha cambiado.
docker compose up --no-recreate
4. Parámetro --remove-orphans
Este parámetro elimina contenedores que no están definidos en el archivo actual compose.yaml
, pero que fueron creados por ejecuciones previas de Docker Compose.
docker compose up --remove-orphans
5. Parámetros -V
, --renew-anon-volumes
Estos parámetros obligan a Docker Compose a recrear volúmenes anónimos en lugar de reutilizarlos.
docker compose up -V
4.4 Ejemplos y recomendaciones
Ejemplos de uso del comando docker compose up
con diferentes opciones:
Ejemplo 1: iniciar la aplicación con reconstrucción de imágenes
Este ejemplo reconstruye las imágenes antes de iniciar los contenedores, lo cual es útil si has realizado cambios en el código fuente o en el Dockerfile.
docker compose up --build
Ejemplo 2: iniciar en segundo plano con recreación de contenedores
Este ejemplo inicia los contenedores en segundo plano y los recrea, incluso si la configuración no ha cambiado.
docker compose up -d --force-recreate
Ejemplo 3: iniciar un servicio específico eliminando contenedores innecesarios
Este ejemplo inicia solo el servicio web
y elimina los contenedores que no están definidos en el archivo actual compose.yaml
.
docker compose up web --remove-orphans
Recomendaciones prácticas
1. Uso del archivo .env
Puedes usar el archivo .env
para definir variables de entorno que serán usadas en tu compose.yaml
. Esto ayuda a gestionar la configuración y facilita el proceso de despliegue en diferentes entornos.
2. Logs y monitoreo
Cuando inicias contenedores usando el comando docker compose up
, todos los logs se muestran en la consola. Esto permite supervisar el estado de los servicios y reaccionar rápidamente ante problemas. Para un monitoreo detallado, usa los comandos docker compose logs
y docker compose ps
.
3. Automatización de compilación y despliegue
Integrar el comando docker compose up
en scripts de automatización o pipelines de CI/CD ayuda a automatizar el proceso de compilación y despliegue de aplicaciones multicontenedor. Por ejemplo, puedes configurar Jenkins o GitHub Actions para realizar la compilación, el deploy y la ejecución automática de docker compose up
con cada actualización de código.
GO TO FULL VERSION