Skip to content

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

  • by Jesús Torres
No diría que Binance es la plataforma más fácil para principiantes, pero puede sentir que está seguro dentro de ella. Puede ...
Leer Más
Hoy, veremos una de las criptomonedas más exclusivas: Dogecoin y descubriremos dónde y cómo comprar Dogecoin. En esta guía, aprenderá ...
Leer Más
Este corredor en línea tiene tarifas de negociación bajas y una amplia cartera de instrumentos financieros. Cubriendo más de 135 ...
Leer Más

Docker Compose es una utensilio que puede utilizar para llevar la batuta de forma centralizada las implementaciones de muchos contenedores Docker diferentes. Es una utensilio 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 accidental. Hoy en día es conveniente global ver implementaciones de aplicaciones realizadas en Docker por los numerosos beneficios que brinda. Sin retención, a menudo no es tan simple como ejecutar un solo contenedor. Por lo militar, es posible que tenga muchos contenedores juntos para desempeñarse como un servicio cohesivo compuesto por muchas partes móviles.

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

En puesto de tener todos sus servicios en un contenedor ilustre, Docker Compose le permite dividirlos en contenedores administrables individualmente. Esto es mejor para la construcción y 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áigalas de un registro.
  • Precisar todos los servicios de componentes en un docker-compose.yml expediente.
  • Ejecútelos todos juntos usando el docker-compose CLI.

Docker Compose no es otro tipo de Dockerfile. Aún necesitará crear y anunciar sus contenedores Docker usando un Dockerfile. Pero, en puesto de ejecutarlos directamente, puede usar Docker Compose para llevar la batuta la configuración de una implementación de varios contenedores.

¿Cómo se usa Docker Compose?

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

Un archivo de configuración de Redactar tendrá un aspecto similar al próximo. Esta configuración ejecuta una instancia de WordPress usando el wordpress contenedor fuera del Docker Hub. Sin retención, esto depende de una pulvínulo de datos MySQL, que todavía es creada por 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 interpretación, ya que la sintaxis puede cambiar según la interpretación que esté usando.

A continuación, una nómina de servicios. El primero se fogosidad “db” y utiliza la mysql:5.7 contenedor, configurado para reiniciarse siempre, y con variables de entorno para configurar la pulvínulo de datos con un legatario y contraseña. Para sostener los datos en los reinicios, esta imagen se configura con un bombeo de Docker montado en el directorio de datos de MySQL.

El otro servicio es “wordpress”, que depende del servicio de la pulvínulo de datos, lo que garantiza que Docker se asegurará de que la pulvínulo de datos se inicie antiguamente 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 pulvínulo de datos está configurado en db:3306, que le dice al contenedor de WordPress que se conecte al servicio “db”.

Por final, los volúmenes se definen para almacenamiento persistente. Opcionalmente, todavía puede precisar redes personalizadas para los contenedores. Hay muchas opciones extendidas que puede configurar, por lo que si está buscando hacer poco específico, debe consultar la documentación de Docker Compose.

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

docker-compose up -d

Y debería ver los servicios que se ejecutan en el sistema con docker ps. En este caso, verá WordPress funcionando correctamente.

Compilación con Docker Compose

Docker Compose todavía se puede usar adentro de un plan de Dockerfile y se puede configurar para crear y ejecutar una imagen localmente en puesto de extraerla de Docker Hub.

Para hacerlo, simplemente necesita anexar 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, el image: La variable todavía está configurada, pero aquí se usa para etiquetar la imagen creada por Docker Compose.