Creación de archivos YAML en Docker Compose
A la hora de la creación de archivos YAML. Docker Compose utiliza un archivo YAML para definir y configurar los servicios y contenedores de una aplicación. A continuación, te guiaré a través de los pasos para creación de archivos YAML y su configuración básica de Docker Compose.
Crear un nuevo archivo YAML
Paso 1: Crear un nuevo archivo. En tu editor de texto o IDE preferido, crea un nuevo archivo y nómbralo docker-compose.yml
. Este es el nombre predeterminado que Docker Compose busca al ejecutar los comandos.
Paso 2: Especificar la versión de Docker Compose. En la parte superior del archivo docker-compose.yml
, debes especificar la versión de Docker Compose que estás utilizando. Esto es importante ya que diferentes versiones pueden tener características y sintaxis ligeramente diferentes. Puedes usar la siguiente línea para especificar la versión 3 como ejemplo:
version: '3'
Paso 3: Definir servicios y contenedores. A continuación, comenzaremos a definir los servicios y contenedores de tu aplicación. Un servicio es una definición de cómo se ejecuta un contenedor y qué configuración tiene.
services:
mi-servicio:
image: nombre-de-imagen
ports:
- "8080:80"
environment:
- VARIABLE=valor
services
: Es la sección donde definimos nuestros servicios.mi-servicio
: Es el nombre que le das a tu servicio. Puedes elegir cualquier nombre que desees.image
: Especifica la imagen del contenedor que deseas utilizar para tu servicio. Puede ser una imagen de DockerHub o un registro privado.ports
: Mapea los puertos del contenedor con los puertos del host. En el ejemplo anterior, se mapea el puerto 80 del contenedor al puerto 8080 del host.environment
: Permite definir variables de entorno dentro del contenedor.
Paso 4: Agregar más servicios. Puedes repetir el paso anterior para agregar más servicios a tu archivo de configuración de Docker Compose. Simplemente copia y pega el bloque de definición de servicios y cámbiale el nombre y la configuración según sea necesario.
Paso 5: Guardar el archivo Una vez que hayas terminado de definir todos tus servicios y contenedores en el archivo docker-compose.yml
, guarda el archivo.
Creación de Archivos YAML: Definición de servicios y contenedores en Docker Compose
En Docker Compose, los servicios son componentes individuales de una aplicación o servicio que se ejecutan en contenedores separados. Cada servicio se define en el archivo de configuración de Docker Compose y especifica la imagen del contenedor que se utilizará, la configuración de red, los volúmenes, las variables de entorno y otros detalles relacionados. A continuación, te explicaré cómo puedes definir servicios y contenedores en Docker Compose.
Para definir un servicio en Docker Compose, debes seguir el siguiente formato:
services:
nombre-del-servicio:
configuración-del-servicio
Aquí tienes una descripción de los elementos clave que puedes especificar en la configuración del servicio:
nombre-del-servicio
: Este es el nombre que le das a tu servicio. Puedes elegir cualquier nombre que desees y usarlo para hacer referencia al servicio en otras partes del archivo de configuración.image
: Especifica la imagen del contenedor que se utilizará para el servicio. Puedes utilizar una imagen disponible en DockerHub o una imagen personalizada de un registro privado.build
: En lugar de especificar una imagen predefinida, puedes usar la directivabuild
para indicar la ruta a un Dockerfile y construir la imagen en tiempo de ejecución. Esto es útil cuando necesitas personalizar la imagen del contenedor.ports
: Permite mapear los puertos expuestos por el contenedor a los puertos del host. La sintaxis es<puerto-host>:<puerto-contenedor>
. Por ejemplo,8080:80
mapea el puerto 80 del contenedor al puerto 8080 del host.volumes
: Permite montar volúmenes en el contenedor para persistir datos o compartir archivos con el host. Puedes especificar rutas de host o nombres de volúmenes. Por ejemplo,./datos:/app/datos
monta el directorio./datos
del host en/app/datos
del contenedor.environment
: Permite definir variables de entorno que estarán disponibles dentro del contenedor. Puedes proporcionar múltiples variables utilizando la sintaxis- VARIABLE=valor
. Por ejemplo,- MYSQL_ROOT_PASSWORD=secreto
establece la variable de entornoMYSQL_ROOT_PASSWORD
en “secreto”.Otros elementos opcionales: Docker Compose ofrece muchas más opciones de configuración, como
networks
para especificar la red a la que se unirá el contenedor,depends_on
para definir dependencias entre servicios,command
para ejecutar comandos personalizados dentro del contenedor, entre otros. Puedes consultar la documentación oficial de Docker Compose para obtener información detallada sobre todas las opciones disponibles.
Creación de Archivo YAML : Ejemplo
Aquí tienes un ejemplo a la hora de la creación de archivo YAML para arrancar la aplicación Heimdall utilizando Docker Compose:
version: '3'
services:
heimdall:
image: linuxserver/heimdall
container_name: heimdall
ports:
- "80:80"
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./data:/config
Explicación del ejemplo:
version: '3'
: Especifica la versión de Docker Compose que estás utilizando.services
: Define la sección de servicios en la que se definirá el servicio Heimdall.heimdall
: Es el nombre del servicio. Puedes elegir cualquier nombre que desees.image: linuxserver/heimdall
: Especifica la imagen del contenedor que se utilizará para el servicio Heimdall. En este caso, estamos utilizando la imagenlinuxserver/heimdall
disponible en DockerHub.container_name: heimdall
: Establece el nombre del contenedor como “heimdall”.ports: - "80:80"
: Mapea el puerto 80 del contenedor al puerto 80 del host. Esto permite acceder a la aplicación Heimdall a través del puerto 80 en tu máquina local.environment: - PUID=1000 - PGID=1000 - TZ=America/New_York
: Define variables de entorno dentro del contenedor. En este ejemplo, estamos configurando el ID del usuario (PUID
), el ID del grupo (PGID
) y la zona horaria (TZ
).volumes: - ./data:/config
: Monta el directorio local./data
en el directorio/config
dentro del contenedor. Esto permite persistir los datos de configuración de Heimdall en tu máquina local.
Recuerda que puedes personalizar la configuración según tus necesidades y que todas las imagenes las podras encontrar en Docker Hub. Por ejemplo, puedes ajustar los puertos, las variables de entorno y los volúmenes según tus preferencias y requisitos específicos.
Guarda este archivo como docker-compose.yml
en tu directorio de trabajo y luego ejecuta el comando docker-compose up
en el mismo directorio para iniciar la aplicación Heimdall utilizando Docker Compose.
Espero que te haya ayudado este tutorial de creación de archivos YAML