Proyecto

¿Qué es Docker Compose?

Docker Compose es una herramienta diseñada específicamente para Docker con el fin de definir y gestionar aplicaciones multicontensor, lo que simplifica la implementación y la gestión de aplicaciones complejas. En términos sencillos, permite describir los múltiples servicios, redes y configuraciones de almacenamiento de una aplicación en un único archivo YAML y, a continuación, iniciar todos los servicios con un solo comando. Si ejecuta varias aplicaciones en UGOS Pro o desea optimizar el proceso de implementación, Docker Compose es una herramienta esencial.

Escenarios aplicables

El uso de Docker Compose en UGOS Pro suele ser adecuado para los siguientes escenarios:

Gestión de aplicaciones multiservicio

Si está ejecutando una aplicación compleja en su NAS que consta de múltiples servicios, como un servidor web, una base de datos, una caché y un proxy inverso, Docker Compose le permite integrar estos servicios en un único archivo de configuración para una gestión y un mantenimiento unificados.

  • Ejemplo: un proyecto típico de WordPress puede incluir un contenedor de WordPress y un contenedor de MySQL. Con Compose, puede iniciar ambos servicios simultáneamente y asegurarse de que la configuración de la conexión sea correcta.

Implementación simplificada de aplicaciones

Con un archivo Docker Compose, puede definir todos los servicios, redes y almacenamiento necesarios para una aplicación en contenedores. Al iniciar todos los servicios definidos con un solo comando, Docker Compose gestiona automáticamente las dependencias de los servicios, agilizando el proceso de implementación de aplicaciones complejas a través de la interfaz de Docker.

Portabilidad de aplicaciones

Docker Compose permite una alta portabilidad para las aplicaciones en contenedores. Puede empaquetar toda la configuración de la aplicación en un archivo Compose e implementarla rápidamente en diferentes dispositivos UGOS Pro, lo que garantiza la coherencia y la eficiencia.

Estructura del archivo Docker Compose

Los archivos Docker Compose suelen llamarse docker-compose.yaml y utilizan la sintaxis YAML para definir servicios, redes y almacenamiento. La estructura básica de un archivo Compose es la siguiente:

versión: '3'
servicios:
  web:
    imagen: nginx
    puertos:
      - "90:80"
    volúmenes:
      - ./html:/usr/share/nginx/html

  db:
    imagen: mysql
    entorno:
      MYSQL_ROOT_PASSWORD: ejemplo
      MYSQL_DATABASE: mydatabase
      MYSQL_USER: usuario
      MYSQL_PASSWORD: contraseña
    volúmenes:
      - ./data:/var/lib/mysql
  • versión: Define la versión del archivo Docker Compose.

  • servicios: Especifica los servicios de la aplicación. En este ejemplo, web y db se definen como dos servicios.

  • imagen: Indica la imagen de Docker utilizada para el servicio, como nginx y mysql.

  • puertos: Asigna puertos entre el host y el contenedor. Por ejemplo, 90:80 asigna el puerto 90 del host NAS al puerto 80 del contenedor, lo que permite acceder al contenedor a través de NAS_IP:90.

  • volumes: Asigna los directorios de almacenamiento NAS a los directorios del contenedor para la persistencia de los datos.

  • environment: Establece variables de entorno para los servicios dentro del contenedor, como contraseñas de bases de datos, claves API y otras opciones de configuración.

Explicación de las variables de entorno

En este ejemplo:

  • MYSQL_ROOT_PASSWORD: establece la contraseña raíz para la base de datos MySQL en example.

  • MYSQL_DATABASE: Crea una base de datos llamada mydatabase.

  • MYSQL_USER: Crea un usuario de base de datos llamado user.

  • MYSQL_PASSWORD: establece la contraseña del usuario anterior como «password».

Estas variables de entorno se pasan al servicio MySQL durante el inicio del contenedor y se utilizan para inicializar la base de datos.

Cómo funciona el montaje de volúmenes

En el archivo Docker Compose, ./html:/usr/share/nginx/html es una configuración de volumen en la que ./ representa el directorio donde se encuentra el archivo Docker Compose.

  • ./html: En este contexto, ./ representa el directorio donde se encuentra el archivo Docker Compose. Concretamente, ./html se refiere a un directorio en UGOS Pro, que es el subdirectoriohtml bajo el mismo directorio que el archivo Docker Compose.

  • /usr/share/nginx/html: se refiere a un directorio dentro del contenedor. Para los contenedores Nginx, esta es la ruta predeterminada para los archivos estáticos del sitio web.

Con esta configuración, Docker monta el directorio ./html del host en /usr/share/nginx/html dentro del contenedor, lo que permite:

  • Reflejo inmediato de los cambios realizados en el directorio ./htmldel host en el directorio /usr/share/nginx/html del contenedor .

  • Sincronización de los cambios realizados dentro del contenedor con el directorio./htmldel host .

Enlace relacionado: ¿Cómo especificar correctamente las rutas de montaje de volúmenes en un archivo de configuración de Docker Compose?

Cómo utilizar Docker Compose en UGOS Pro

Supongamos que está ejecutando un centro multimedia doméstico en UGREEN NAS. Puede utilizar Docker Compose para gestionar servicios como Jellyfin (servidor multimedia), MariaDB (base de datos) y Redis (caché). Con un único archivodocker-compose.yml, puede definir las dependencias, los montajes de volumen y las configuraciones de red para estos servicios y gestionar todo el centro multimedia con sencillos comandos.

Pasos para operar:

1. Crear un proyecto

Abra la aplicación Docker en UGOS Pro y haga clic en «Proyecto» > «Crear» y rellene los siguientes datos:

  • Nombre: proporcione un nombre para el proyecto.

  • Ruta de almacenamiento: especifique la ruta donde se almacenaráel archivo de configuración de Docker Compose (docker-compose.yaml).

  • Configuración de Compose: introduzca la configuración YAML directamente o importe un archivodocker-compose.yamlexistente .

2. Configurar PUID y PGID

  • Si es necesario, configure los valores PUID y PGID.

  • Se recomienda utilizar el ID de usuario y el ID de grupo del usuario actual para evitar problemas de permisos que podrían causar errores en el contenedor.

3. Implementar el proyecto

  • Después de verificar la configuración, haga clic en «Implementar» para compilar el proyecto.

Siguiendo estos pasos, puede utilizar Docker Compose para iniciar y gestionar todo su centro multimedia doméstico. Todos los servicios se ejecutarán en segundo plano con las dependencias correctamente configuradas, lo que garantiza un funcionamiento fluido.