Docker Compose es una herramienta poderosa que permite definir y ejecutar aplicaciones multi-contenedor. En esta sección, aprenderemos sobre los comandos esenciales de Docker Compose que te ayudarán a gestionar tus aplicaciones de manera eficiente.
- Introducción a los Comandos de Docker Compose
Docker Compose utiliza un archivo YAML (docker-compose.yml
) para definir los servicios, redes y volúmenes necesarios para una aplicación. Los comandos de Docker Compose permiten interactuar con estos archivos para construir, ejecutar y gestionar los contenedores.
Comandos Básicos
A continuación, se presentan los comandos básicos de Docker Compose que debes conocer:
docker-compose up
docker-compose down
docker-compose build
docker-compose start
docker-compose stop
docker-compose restart
docker-compose ps
docker-compose logs
docker-compose exec
docker-compose run
- Descripción de los Comandos
2.1 docker-compose up
Este comando crea y arranca los contenedores definidos en el archivo docker-compose.yml
.
- Opción
-d
: Ejecuta los contenedores en segundo plano (modo "detached").
2.2 docker-compose down
Detiene y elimina los contenedores, redes y volúmenes creados por docker-compose up
.
- Opción
--volumes
: Elimina los volúmenes asociados.
2.3 docker-compose build
Construye o reconstruye las imágenes de los servicios definidos en el archivo docker-compose.yml
.
- Opción
--no-cache
: Construye las imágenes sin usar la caché.
2.4 docker-compose start
Inicia los contenedores detenidos sin recrearlos.
2.5 docker-compose stop
Detiene los contenedores sin eliminarlos.
2.6 docker-compose restart
Reinicia los contenedores.
2.7 docker-compose ps
Lista los contenedores que están siendo gestionados por Docker Compose.
2.8 docker-compose logs
Muestra los logs de los contenedores.
- Opción
-f
: Sigue los logs en tiempo real.
2.9 docker-compose exec
Ejecuta un comando en un contenedor en ejecución.
Ejemplo: Acceder a una shell en el contenedor del servicio web
.
2.10 docker-compose run
Ejecuta un comando en un nuevo contenedor de uno de los servicios definidos.
Ejemplo: Ejecutar un comando en un nuevo contenedor del servicio web
.
- Ejercicios Prácticos
Ejercicio 1: Crear y Ejecutar Contenedores
- Crea un archivo
docker-compose.yml
con el siguiente contenido:
version: '3' services: web: image: nginx ports: - "8080:80" db: image: postgres environment: POSTGRES_PASSWORD: example
- Ejecuta los siguientes comandos y observa los resultados:
docker-compose up -d docker-compose ps docker-compose logs docker-compose stop docker-compose start docker-compose down
Ejercicio 2: Ejecutar Comandos en Contenedores
- Con el mismo archivo
docker-compose.yml
, ejecuta los siguientes comandos:
docker-compose up -d docker-compose exec web /bin/bash docker-compose exec db psql -U postgres docker-compose down
- Resumen
En esta sección, hemos cubierto los comandos esenciales de Docker Compose que te permiten gestionar aplicaciones multi-contenedor de manera eficiente. Desde arrancar y detener contenedores hasta ejecutar comandos dentro de ellos, estos comandos son fundamentales para cualquier desarrollador que trabaje con Docker Compose.
Próximos Pasos
En la siguiente sección, exploraremos cómo definir servicios en Docker Compose, lo que te permitirá configurar aplicaciones más complejas y personalizadas.
Docker: De Principiante a Avanzado
Módulo 1: Introducción a Docker
- ¿Qué es Docker?
- Instalando Docker
- Arquitectura de Docker
- Comandos Básicos de Docker
- Entendiendo las Imágenes de Docker
- Creando tu Primer Contenedor Docker
Módulo 2: Trabajando con Imágenes Docker
- Docker Hub y Repositorios
- Construyendo Imágenes Docker
- Conceptos Básicos de Dockerfile
- Gestionando Imágenes Docker
- Etiquetado y Publicación de Imágenes
Módulo 3: Contenedores Docker
- Ejecutando Contenedores
- Ciclo de Vida del Contenedor
- Gestionando Contenedores
- Redes en Docker
- Persistencia de Datos con Volúmenes
Módulo 4: Docker Compose
- Introducción a Docker Compose
- Definiendo Servicios en Docker Compose
- Comandos de Docker Compose
- Aplicaciones Multi-Contenedor
- Variables de Entorno en Docker Compose
Módulo 5: Conceptos Avanzados de Docker
- Profundización en Redes Docker
- Opciones de Almacenamiento Docker
- Mejores Prácticas de Seguridad en Docker
- Optimizando Imágenes Docker
- Registro y Monitoreo en Docker
Módulo 6: Docker en Producción
- CI/CD con Docker
- Orquestando Contenedores con Docker Swarm
- Introducción a Kubernetes
- Desplegando Contenedores Docker en Kubernetes
- Escalado y Balanceo de Carga