Conceptos 02 - Referencia de comandos de Docker Compose
Comandos principales organizados por categoría funcional. Seleccione cualquier comando para ver un ejemplo de uso en terminal.
Concepto 1 de 4
Construcción e inicio
Comandos para construir las imágenes y crear e iniciar los servicios del proyecto.
Construcción e inicio 3 comandos
Construye, crea e inicia los servicios definidos en la configuración.
docker compose up[+] Running 3/3✔ Network myapp_default Created✔ Container myapp-db-1 Started✔ Container myapp-web-1 Started
Ejecuta en primer plano. Los logs de todos los servicios se muestran combinados en la terminal. Ctrl+C detiene todos los contenedores.
Inicia los servicios en modo desacoplado, en segundo plano.
docker compose up -d[+] Running 3/3✔ Network myapp_default Created✔ Container myapp-db-1 Started✔ Container myapp-web-1 Started
La terminal queda libre después del arranque. Use docker compose logs -f para ver la salida posteriormente.
Fuerza la construcción de las imágenes antes de iniciar los servicios.
# Después de modificar el Dockerfile o el código fuentedocker compose up --build[+] Building 12.4s (9/9) FINISHED=> [web] docker.io/library/node:20-alpine=> CACHED [web 2/5] WORKDIR /app=> [web 3/5] COPY package*.json ./
Necesario cuando hay cambios en el Dockerfile o en archivos que afectan la construcción. Compose no reconstruye automáticamente.
Concepto 2 de 4
Diagnóstico y monitoreo
Comandos para consultar el estado, los logs y el interior de los contenedores en ejecución.
Diagnóstico y monitoreo 4 comandos
Lista los contenedores del proyecto y muestra su estado actual.
docker compose psNAME SERVICE STATUS PORTSmyapp-db-1 db running 5432/tcpmyapp-web-1 web running 0.0.0.0:3000->3000/tcp
Primer comando de diagnóstico. Verifique que todos los servicios estén en estado running antes de continuar.
Muestra los logs agregados de los servicios del proyecto.
docker compose logs --tail=20db-1 | 2025-01-15 LOG: database system is readyweb-1 | Server listening on port 3000
Combine con --tail=N para limitar la salida a las últimas N líneas. Útil cuando los logs acumulados son extensos.
Muestra y sigue en tiempo real los logs de un servicio específico.
docker compose logs -f webweb-1 | GET /api/users 200 12msweb-1 | POST /api/login 401 8msweb-1 | GET /api/users 200 11ms▲ Ctrl+C para salir del seguimiento
Equivalente a tail -f. Permite observar la actividad de un servicio mientras se realizan pruebas en otra terminal.
Ejecuta un comando dentro de un contenedor en ejecución del servicio indicado.
# Abrir una sesión interactiva en el contenedor de la base de datosdocker compose exec db psql -U postgrespsql (16.1)postgres=# \dt
Requiere que el contenedor esté en ejecución. Para sesiones con terminal interactiva, agregue las flags -it si el shell lo requiere.
Concepto 3 de 4
Detención y limpieza
Comandos para detener los servicios y eliminar los recursos del proyecto.
Detención y limpieza 3 comandos
Detiene los servicios sin eliminar los contenedores.
docker compose stop[+] Stopping 2/2✔ Container myapp-web-1 Stopped✔ Container myapp-db-1 Stopped
Los contenedores quedan detenidos pero conservan su estado. Use docker compose start para reanudarlos sin recrearlos.
Detiene y elimina los contenedores y las redes creadas para el proyecto.
docker compose down[+] Running 3/3✔ Container myapp-web-1 Removed✔ Container myapp-db-1 Removed✔ Network myapp_default Removed
Los volúmenes nombrados se conservan. El próximo up creará contenedores y redes nuevos, pero los datos persistentes permanecen.
Además de lo anterior, elimina los volúmenes nombrados y anónimos asociados.
# Limpieza completa incluyendo datos persistentesdocker compose down -v[+] Running 4/4✔ Container myapp-web-1 Removed✔ Container myapp-db-1 Removed✔ Volume myapp_pgdata Removed✔ Network myapp_default Removed
Precaución: operación destructiva. Todos los datos almacenados en volúmenes del proyecto se perderán de forma irreversible.
Ejecute los comandos en distinto orden y observe qué recursos del proyecto se crean, se detienen o se eliminan.
- Red
myapp_defaultNo existe - Contenedor
myapp-db-1No existe - Contenedor
myapp-web-1No existe - Volumen
myapp_pgdataNo existe
# Ejecute un comando para ver su efecto sobre los recursos del proyecto.Concepto 4 de 4
Verificación de configuración
Comando para validar y revisar la configuración resuelta antes de levantar los servicios.
Verificación de configuración 1 comando
Valida, resuelve y muestra la configuración resultante en formato canónico.
# Verificar que la configuración sea válidadocker compose config --quiet# Sin salida = configuración correcta # Ver la configuración resueltadocker compose configname: myappservices:web: image: node:20-alpine ports: - "3000:3000"
Autoevaluación
Comprueba lo que aprendiste
Cuatro preguntas rápidas para verificar las ideas clave de la lectura. Cada respuesta incluye una explicación.
0/4 respuestas correctas