GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Qué es Docker Compose?

Introducción

El desarrollo de aplicaciones con Docker puede convertirse en un desafío al hacer malabarismos con múltiples servicios y contenedores. Obtenga información sobre Docker Compose, la herramienta que lo ayudará a ejecutar entornos de aplicaciones de varios contenedores.

En este tutorial, aprenderá todo sobre Docker Compose, los beneficios de usar esta herramienta, sus casos de uso y características.

¿Qué es Docker Compose?

Una aplicación puede constar de varios contenedores que ejecutan diferentes servicios. Puede ser tedioso iniciar y administrar contenedores manualmente, por lo que Docker creó una herramienta útil que ayuda a acelerar el proceso:Docker Compose.

Docker Compose es un software utilizado para definir y ejecutar aplicaciones Docker de varios contenedores. Puede manejar múltiples contenedores simultáneamente en el entorno de producción, puesta en escena, desarrollo, pruebas y CI. Por lo tanto, use Docker Compose para administrar todo el ciclo de vida de desarrollo de software (SDLC).

Docker Compose funciona aplicando reglas definidas en un docker-compose.yaml expediente. El archivo YAML configura los servicios de la aplicación e incluye reglas que especifican cómo desea que se ejecuten. Con el archivo en su lugar, puede iniciar, detener o reconstruir todos los servicios con un solo comando. Además, puede verificar el estado de un servicio, mostrar resultados de registro y ejecutar comandos únicos.

Instalar Docker Compose es simple. Para obtener instrucciones paso a paso, consulta:

Cómo instalar Docker Compose en Ubuntu 18.04Cómo instalar Docker Compose en CentOS 7Cómo instalar Docker Compose en Ubuntu 20.04

Casos de uso de composición de Docker

Los casos de uso comunes de Docker Compose incluyen:

  • Entornos de prueba automatizados . Compose admite pruebas automatizadas, que es una parte esencial de CI/CD, ya que puede crear y destruir fácilmente el entorno de prueba requerido. Los desarrolladores pueden definir y configurar el entorno necesario para ejecutar pruebas automatizadas de un extremo a otro mediante el archivo Docker Compose adecuado.
  • Implementaciones de host único . En Docker Compose, los contenedores están diseñados para ejecutarse en un solo host, ya que tradicionalmente se han centrado en los flujos de trabajo de desarrollo y prueba.
  • Entornos de desarrollo . Compose es una forma rápida y sencilla de iniciar proyectos, ya que puede generar rápidamente nuevos entornos de desarrollo aislados. El software documenta y configura todas las dependencias de servicio de la aplicación (incluidas bases de datos, cachés, API de servicios web, etc.). Le permite crear e iniciar uno o varios contenedores para cada dependencia con un solo comando.

Beneficios de Docker Compose

Estos son algunos de los principales beneficios de usar Docker Compose:

  • Configuración rápida y sencilla. Gracias a los scripts YAML y las variables de entorno, puede configurar o modificar fácilmente los servicios de la aplicación.
  • Seguro comunicación interna. Compose crea una red para compartir todos los servicios. Esto agrega una capa de seguridad adicional para la aplicación, ya que no se puede acceder a los servicios desde el exterior.
  • Portabilidad y compatibilidad con CI/CD. Dado que todos los servicios están definidos dentro del archivo docker-compose, los desarrolladores pueden acceder fácilmente y compartir toda la configuración. Al extraer el archivo YAML y el código fuente, pueden iniciar el entorno en cuestión de minutos. Esto contribuye a configurar y habilitar una canalización de CI/CD eficiente.
  • Uso eficiente de los recursos. Docker Compose le permite alojar varios entornos aislados en un host. Ejecutar todo en una sola pieza de hardware le permite ahorrar muchos recursos. Sus características que le permiten almacenar en caché una configuración y reutilizar los contenedores existentes también contribuyen a la eficiencia de los recursos.

Características de composición de Docker

Hay varias características destacadas de Docker Compose que brindan los beneficios mencionados anteriormente.

Alojamiento de varios entornos aislados en un solo host

Compose mantiene los entornos aislados entre sí en un único host mediante nombres de proyectos.

De forma predeterminada, el nombre del proyecto es el nombre base del directorio del proyecto, mientras que el directorio del proyecto es el directorio base del archivo docker-compose. Puede cambiar los valores predeterminados:

  • Establecer el nombre del proyecto usando el -p opción de línea de comando o COMPOSE_PROJECT_NAME variable de entorno.
  • Establecer el directorio del proyecto usando el --project-directory variable de entorno.

Puede utilizar esta función en un host de desarrollo para ejecutar copias estables de cada rama de función de su proyecto mediante la creación de varias copias del entorno con diferentes nombres.

Si está trabajando en un servidor CI o en un host compartido, querrá asegurarse de que las compilaciones no interfieran entre sí. Para hacerlo, establezca los nombres de los proyectos en números de compilación únicos.

Variables de entorno compatibles

Puede personalizar contenedores para diferentes entornos o usuarios agregando variables de entorno en el archivo docker-compose. Eso le brinda más flexibilidad al configurar contenedores con Compose, ya que los valores de las variables no están codificados en la configuración.

Los valores de las variables se pueden establecer en el entorno de shell (desde el que ejecuta docker-compose ) o en un archivo .env (almacenado en el directorio del proyecto). De forma predeterminada, Docker compose aplica los valores especificados en el archivo .env. Sin embargo, los valores establecidos en el entorno de shell anulan los del archivo .env.

Puede utilizar esta función para cualquier cosa, desde proporcionar contraseñas de forma segura hasta especificar una versión de software.

Preservar datos de volumen

Otra gran característica de Docker Compose es que guarda los datos utilizados por los servicios. Por lo tanto, no tiene que preocuparse por perder datos creados en contenedores. Si hay contenedores de ejecuciones anteriores, Compose los encontrará y copiará sus volúmenes en la nueva ejecución.

Reutilización de contenedores existentes

Compose solo recrea contenedores que han cambiado desde la última ejecución. Si no hay cambios, reutiliza el contenedor existente.

Esta función se basa en la capacidad del software para almacenar en caché las configuraciones de los contenedores, lo que le permite configurar sus servicios más rápido.

Comandos básicos de redacción de Docker

La sintaxis básica para ejecutar los comandos de Docker Compose es:

docker-compose [command]

A continuación, encontrará algunos de los comandos más básicos de Docker Compose y para qué se utilizan.

¿Cómo usar Docker Compose?

Hay tres pasos para usar Compose:

1. El primer paso es crear un Dockerfile para definir el entorno de la aplicación. El archivo genera imágenes de Docker, que se utilizarán como base para los contenedores.

2. A continuación, debe definir los servicios en un archivo Compose. Cree un nuevo archivo en el directorio del proyecto con el nombre docker-compose.yml y defina sus servicios usando la sintaxis YAML. Un ejemplo de dicho archivo incluiría el siguiente contenido:

version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    links:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

3. Finalmente, ejecute y administre la aplicación mediante la CLI de Docker Compose. Puede ejecutar un solo docker-compose up comando para iniciar toda la aplicación en una instancia.


Ubuntu
  1. ¿Qué es Docker (y los contenedores de Linux?)

  2. Cómo usar Docker Compose

  3. Una guía rápida para usar Docker Compose

  4. Cómo instalar Docker Compose en Ubuntu 18.04

  5. ¿Por qué Deis y qué es?

Cómo instalar Docker Compose en CentOS 7

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

¿Qué es un manifiesto de imagen de Docker?

Cómo instalar Docker Compose en Ubuntu

Docker File vs Docker Compose:¿Cuál es la diferencia?

Qué hacer si un contenedor Docker sale inmediatamente

    Comando Descripción
    docker-compose --help mostrar ayuda, instrucciones de uso y argumentos para el comando docker-compose
    docker-compose build busque todos los servicios que contengan build: en el archivo docker-compose.yml y ejecute una docker build para cada uno
    docker-compose run ejecutar un comando único contra un servicio
    docker-compose up construir, (re)crear, iniciar y adjuntar contenedores para un servicio
    docker-compose -f [command] especifique la ubicación de un archivo de configuración de docker-compose agregando -f bandera
    docker-compose start iniciar contenedores existentes para un servicio
    docker-compose stop dejar de ejecutar contenedores (sin eliminarlos)
    docker-compose pause pausa en ejecución de contenedores de un servicio
    docker-compose unpause reanudar contenedores en pausa de un servicio
    docker-compose down detener contenedores (y eliminar contenedores, redes, volúmenes e imágenes)
    docker-compose ps contenedores de lista dentro del archivo de configuración docker-compose
    docker-compose images lista de imágenes usadas por contenedores creados
    docker-compose ls lista de proyectos de Compose en ejecución