Docker
Tutorial Docker: Creación de archivos Docker Compose
Docker Compose crear archivos: configuración. Aprende a crear y configurar archivos de Docker Compose para múltiples servicios con ejemplos prácticos.
Docker Compose es una herramienta que facilita el despliegue de aplicaciones multi-contenedor en Docker.
Permite definir y correr aplicaciones compuestas por varios contenedores. Utiliza archivos YAML para configurar los servicios de la aplicación, lo que permite al usuario definir, en un solo archivo, todos los aspectos relacionados con el entorno de ejecución de una aplicación, incluyendo la construcción de imágenes Docker personalizadas, volúmenes, puertos, y otros servicios necesarios.
Estructura de un archivo Docker Compose
Docker Compose se centra en la “orquestación” de contenedores, es decir, en la gestión automatizada de múltiples contenedores de Docker que constituyen una aplicación.
Un archivo Docker Compose, generalmente nombrado docker-compose.yml
, sigue una estructura definida en formato YAML basada en tres conceptos clave: servicios, redes y volúmenes.
- Servicios (services): Define cómo se deben construir e iniciar los contenedores Docker. Cada servicio puede estar basado en una imagen Docker existente o puede construir una imagen personalizada basada en un Dockerfile.
- Volúmenes (volumes): Gestiona el almacenamiento persistente de datos para contenedores, permitiendo que los datos sobrevivan incluso cuando los contenedores son eliminados. Deben declararse como
volumes
, y entonces podrán ser utilizados en un servicio. - Redes (networks): Permite definir redes personalizadas para el aislamiento y la intercomunicación entre contenedores. Deben declararse como
networks
, y entonces podrán ser utilizados en un servicio.
Ejemplo de docker-compose.yml
:
version: '3.8' # Define la versión de Docker Compose utilizada
services:
mi_servicio: # Nombre del servicio (identificador de libre elección)
image: mi_imagen:latest # Nombre de la imagen Docker a utilizar
build: . # Opción para construir la imagen Docker desde un Dockerfile en el directorio actual
ports:
- "80:80" # Mapea el puerto 80 del contenedor al puerto 80 del host
volumes:
- mi_volumen:/ruta/en/contenedor # Monta un volumen para persistencia de datos
environment:
VARIABLE_ENTORNO: valor # Define variables de entorno para el contenedor
volumes:
mi_volumen: # Define un volumen persistente que puede ser utilizado por los servicios
networks:
mi_red: # Opcional: define una red personalizada para la comunicación entre servicios
En este caso, el volumen mi_volumen
y la red mi_red
serían creados por Docker si no existen.
Uso de Docker Compose
Una vez se tiene el archivo docker-compose.yml
que describa los servicios, redes y volúmenes requeridos, se utilizan comandos de Docker Compose para gestionar la aplicación:
docker-compose up
: Crea e inicia todos los servicios definidos en el archivodocker-compose.yml
. Si se utiliza la opción-d
, los servicios se iniciarán en segundo plano.docker-compose ps
: Muestra el estado de todos los contenedores que se definen en el archivo.docker-compose down
: Detiene y elimina todos los contenedores, redes y volúmenes definidos en el archivo.
Ejemplo de uso
Supongamos que tenemos una aplicación web simple contenida en una imagen de Docker llamada mi_app_web:latest
. Esta aplicación necesita exponer el puerto 80 y requiere de un volumen para persistir datos. El archivo docker-compose.yml
para este escenario sería:
version: '3.8'
services:
web:
image: mi_app_web:latest
ports:
- "80:80"
volumes:
- data_vol:/var/lib/mi_app_data
volumes:
data_vol:
En este caso, se define un servicio web
que utiliza la imagen mi_app_web:latest
. El puerto 80 del contenedor se mapea al puerto 80 del host, y se define un volumen llamado data_vol
(se creará si no existe) para persistir datos en la ruta /var/lib/mi_app_data
dentro del contenedor.
A partir de Docker Compose versión 1.27.0, se recomienda utilizar la especificación Compose sin especificar una versión del archivo docker-compose.yml. Esto permite a los usuarios aprovechar automáticamente las últimas características y mejoras sin necesidad de ajustar la versión en sus archivos Compose. La especificación Compose está diseñada para ser compatible hacia adelante, lo que significa que los archivos deberían ser compatibles con futuras versiones del formato.
Ejercicios de esta lección Creación de archivos Docker Compose
Evalúa tus conocimientos de esta lección Creación de archivos Docker Compose con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Crear un archivo Docker Compose con un servicio
Crear un archivo Docker Compose con varios servicios
Descargar imágenes de hub.docker.com
Instalación de Docker
Introducción a Docker
Crear imagen Dockerfile
Creación de contenedores
Creación de volumen Docker
Crear y usar redes Docker
Todas las lecciones de Docker
Accede a todas las lecciones de Docker y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Docker
Introducción Y Entorno Docker
Instalación De Docker
Introducción Y Entorno Docker
Descargar Imágenes De Hub.docker.com
Imágenes Docker
Crear Imágenes Con Dockerfile
Imágenes Docker
Contenedores Docker
Contenedores Docker
Volúmenes Docker
Volúmenes Docker
Redes Docker
Redes Docker
Creación De Archivos Docker Compose
Docker Compose
Docker Compose Para Varios Servicios
Docker Compose
Certificados de superación de Docker
Supera todos los ejercicios de programación del curso de Docker y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender el propósito y las capacidades de Docker Compose como herramienta de orquestación de contenedores.
- Aprender a definir y configurar servicios, volúmenes y redes en un archivo
docker-compose.yml
. - Adquirir habilidad en el uso de comandos de Docker Compose para gestionar aplicaciones multi-contenedor.