El Comando Docker Compose
El comando docker-compose
es una herramienta esencial para gestionar aplicaciones multi-contenedor definidas en un archivo docker-compose.yml
. Permite iniciar, detener, construir y administrar los contenedores definidos en dicho archivo. Es importante ejecutar estos comandos desde el directorio en el que se encuentra el archivo docker-compose.yml
.
A continuación se detallan los subcomandos más utilizados y sus funciones:
Subcomandos Básicos
-
docker-compose up
: Crea y arranca los contenedores descritos en el archivodocker-compose.yml
. Si no se especifica el modo, se ejecuta en primer plano, mostrando los logs en la terminal.docker-compose up
-
docker-compose up -d
: Crea y arranca los contenedores en segundo plano (modo detached). Los logs no se muestran en la terminal, permitiendo que el prompt esté disponible inmediatamente.docker-compose up -d
-
docker-compose stop
: Detiene los contenedores que están en ejecución pero no los elimina. Esto permite reiniciarlos más tarde sin necesidad de reconstruirlos.docker-compose stop
-
docker-compose start
: Inicia los contenedores que han sido previamente detenidos condocker-compose stop
.docker-compose start
-
docker-compose run
: Inicia un contenedor para un servicio específico, permitiendo ejecutar comandos en él. Utilizado a menudo para ejecutar tareas puntuales.docker-compose run <servicio> <comando>
-
docker-compose rm
: Elimina los contenedores que están detenidos. La opción-f
también eliminará los contenedores en ejecución.docker-compose rm
docker-compose rm -f -
docker-compose pause
: Pausa todos los contenedores en ejecución, deteniendo sus procesos sin eliminarlos.docker-compose pause
-
docker-compose unpause
: Reanuda los contenedores que fueron pausados previamente.docker-compose unpause
-
docker-compose restart
: Reinicia los contenedores, útil para aplicar nuevas configuraciones o actualizaciones.docker-compose restart
-
docker-compose down
: Detiene y elimina los contenedores, redes y volúmenes creados pordocker-compose up
. Es una forma limpia de eliminar todo el entorno definido en el archivodocker-compose.yml
.docker-compose down
-
docker-compose down -v
: Además de detener y eliminar los contenedores y redes, también elimina los volúmenes asociados, asegurando que no queden datos persistentes.docker-compose down -v
Comandos de Inspección y Diagnóstico
-
docker-compose logs
: Muestra los logs de todos los servicios en el archivodocker-compose.yml
. La opción-f
permite seguir viendo los logs en tiempo real.docker-compose logs
docker-compose logs -f -
docker-compose logs <servicio>
: Muestra los logs específicos de un servicio determinado.docker-compose logs <servicio>
-
docker-compose exec <servicio> <comando>
: Ejecuta un comando en un contenedor en ejecución de un servicio específico. Por ejemplo, para abrir una shell en un contenedor:docker-compose exec <servicio> /bin/bash
-
docker-compose top
: Muestra los procesos que están ejecutándose en cada uno de los contenedores de los servicios definidos.docker-compose top
Comandos de Construcción y Actualización
-
docker-compose build
: Construye o reconstruye las imágenes de los servicios descritos en el archivodocker-compose.yml
, utilizando los archivosDockerfile
especificados.docker-compose build
-
docker-compose pull
: Descarga las imágenes de los servicios desde el registro, si están definidas en el archivodocker-compose.yml
.docker-compose pull
Parámetros Adicionales
-
--file
o-f
: Permite especificar un archivodocker-compose.yml
diferente al predeterminado. Útil para trabajar con múltiples configuraciones.docker-compose -f docker-compose.override.yml up
-
--project-name
: Cambia el nombre del proyecto, lo cual afecta el nombre de los contenedores, redes y volúmenes.docker-compose --project-name myproject up
Para más detalles sobre todos los comandos y sus opciones, consulta la documentación oficial de Docker Compose.