GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

¿Qué es Docker Compose y cómo se usa?

Docker Compose es una herramienta que puede usar para administrar de forma centralizada las implementaciones de muchos contenedores Docker diferentes. Es una herramienta importante para cualquier aplicación que necesite múltiples microservicios, ya que permite que cada servicio esté fácilmente en un contenedor administrado por separado.

¿Qué hace Docker Compose?

Los contenedores Docker se utilizan para ejecutar aplicaciones en un entorno aislado. Es bastante común hoy en día ver implementaciones de aplicaciones realizadas en Docker por los numerosos beneficios que brinda. Sin embargo, a menudo no es tan simple como ejecutar un solo contenedor. Por lo general, es posible que tenga muchos contenedores que se unen para actuar como un servicio cohesivo formado por muchas partes móviles.

Administrar todo esto en el momento de la implementación es complicado, por lo que para limpiarlo, Docker proporciona Docker Compose, una herramienta de configuración que se utiliza para ejecutar varios contenedores a la vez. Puede definir toda la configuración en un archivo YAML y luego iniciar todos los contenedores con un comando.

En lugar de tener todos sus servicios en un gran contenedor, Docker Compose le permite dividirlos en contenedores manejables individualmente. Esto es mejor tanto para la construcción como para la implementación, ya que puede administrarlos todos en bases de código separadas y no necesita iniciar manualmente cada contenedor individual.

El uso de Docker Compose es un proceso de tres pasos:

  • Cree las imágenes de los componentes utilizando sus Dockerfiles o extráigalos de un registro.
  • Defina todos los servicios de componentes en un docker-compose.yml archivo.
  • Ejecutarlos todos juntos usando docker-compose CLI.

Docker Compose no es otro tipo de Dockerfile. Aún deberá compilar y publicar sus contenedores Docker mediante un Dockerfile. Pero, en lugar de ejecutarlos directamente, puede usar Docker Compose para administrar la configuración de una implementación de varios contenedores.

¿Cómo se usa Docker Compose?

La configuración de un archivo docker compose se realiza en docker-compose.yml . No necesita colocar esto en la raíz de su proyecto como un Dockerfile. De hecho, puede ir a cualquier parte, ya que no depende de ningún otro código. Sin embargo, si está compilando las imágenes localmente, deberá ir a una carpeta de proyecto con el código que se está compilando.

Un archivo de configuración de Compose se parecerá a lo siguiente. Esta configuración ejecuta una instancia de WordPress usando wordpress contenedor fuera del Docker Hub. Sin embargo, esto depende de una base de datos MySQL, que también crea Compose.

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: rootpasswordchangeme
       MYSQL_DATABASE: wordpress
       MYSQL_USER: usernamechangeme
       MYSQL_PASSWORD: passwordchangeme

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: usernamechangeme
       WORDPRESS_DB_PASSWORD: passwordchangeme
volumes:
    db_data:

Echemos un vistazo al formato de este archivo. Primero, un número de versión, ya que la sintaxis puede cambiar dependiendo de la versión que estés usando.

A continuación una lista de Servicios. El primero se llama "db" y usa el mysql:5.7 contenedor, configurado para reiniciar siempre, y con variables de entorno para configurar la base de datos con un usuario y una contraseña. Para mantener los datos durante los reinicios, esta imagen se configura con un volumen de Docker montado en el directorio de datos de MySQL.

El otro servicio es "wordpress", que depende del servicio de la base de datos, lo que garantiza que Docker se asegurará de que la base de datos se inicie antes de ejecutarse. Expone el puerto 80 como puerto 8000 y establece algunas variables de entorno para que pueda conectarse a MySQL. Tenga en cuenta que el host de la base de datos se establece en db:3306 , que le dice al contenedor de WordPress que se conecte al servicio "db".

Por último, los volúmenes se definen para el almacenamiento persistente. Opcionalmente, también puede definir redes personalizadas para los contenedores. Hay muchas opciones extendidas que puede configurar, por lo que si está buscando hacer algo específico, debe consultar la documentación de Docker Compose.

Una vez configurado, iniciar este servicio es fácil. Simplemente ejecute docker-compose up , que extraerá todos los contenedores necesarios e iniciará sus servicios.

docker-compose up -d

Y debería ver los servicios ejecutándose en el sistema con docker ps . En este caso, verá que WordPress funciona correctamente.

RELACIONADO: Cómo instalar Docker y Docker Compose en Linux

Construcción con Docker Compose

Docker Compose también se puede usar dentro de un proyecto de Dockerfile y se puede configurar para compilar y ejecutar una imagen localmente en lugar de extraerla de Docker Hub.

Para hacerlo, simplemente necesita agregar un build sección sobre el servicio. Puede configurar diferentes directorios de contexto, así como diferentes Dockerfiles para diferentes imágenes.

version: "3.8"
services:
  webapp:
    build:
      context: ./dir
      dockerfile: Dockerfile-alternate
    image: imagename:tag

En este caso, la image: La variable también está configurada, pero aquí se usa para etiquetar la imagen creada por Docker Compose.


Docker
  1. ¿Qué es Umask y cómo usarlo?

  2. Cómo usar Docker Compose

  3. ¿Qué son los volúmenes de Docker y cómo se usan?

  4. Cómo y por qué usar un host Docker remoto

  5. Cómo instalar y usar Docker Compose en CentOS

Cómo instalar y usar Docker Compose en Ubuntu 20.04

Cómo instalar y usar Docker Compose en Ubuntu 22.04

Cómo instalar y usar Docker en Ubuntu 22.04

Cómo instalar Docker y Docker Compose en Linux

Cómo instalar y usar Docker en Ubuntu 20.04

Cómo instalar y usar Docker Compose en Debian 11