Docker Compose es una herramienta poderosa y popular que se utiliza para administrar e implementar aplicaciones basadas en Docker. Le permite definir, configurar y ejecutar varios Docker contenedores como un solo proyecto, lo que simplifica la implementación de aplicaciones y garantiza la coherencia entre los entornos de desarrollo y producción.
A continuación se presentan algunos conceptos y ejemplos de Docker Compose:
Defina el proyecto usando el archivo docker-compose.yml
En el docker-compose.yml archivo, puede definir los servicios requeridos para su aplicación. Por ejemplo, para implementar una aplicación web PHP con una base de datos MySQL, puede definir dos servicios de la siguiente manera:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "80:80"
volumes:
- ./app:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: my_database
En el fragmento de código anterior, definimos dos servicios: web y db. El web servicio utilizará PHP 7.4 image con Apache, escuchará en el puerto 80 y montará el ./app directorio desde el host en el /var/www/html directorio en el container. El db servicio utilizará MySQL 5.7 image y establecerá algunas variables de entorno necesarias para la base de datos.
Usando Docker Compose el comando
Una vez que haya definido el proyecto en el docker-compose.yml archivo, puede usar Docker Compose comandos para administrar los servicios.
-
Iniciar el proyecto:
docker-compose upEste comando iniciará los contenedores para los servicios definidos en el
docker-compose.ymlarchivo. -
Detener y retirar los contenedores:
docker-compose downEste comando detiene y elimina todos los contenedores relacionados con el proyecto.
-
Lista de contenedores en ejecución:
docker-compose psEste comando mostrará el estado de los contenedores en el proyecto.
-
Ver registros de servicio:
docker-compose logsEste comando muestra los registros de los servicios en el proyecto.
Variables de entorno y personalización
Docker Compose le permite usar variables de entorno para personalizar configuraciones para diferentes entornos, como desarrollo y producción. Puede utilizar variables de entorno en el docker-compose.yml archivo y definir sus valores en .env los archivos correspondientes.
Por ejemplo, si desea definir una variable de entorno para el puerto del web servicio, puede agregar una línea al .env archivo como esta:
WEB_PORT=8080
Luego, en el docker-compose.yml archivo, puede usar esta variable de entorno de esta manera:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Al ejecutar el docker-compose up comando, el web servicio escuchará en el puerto 8080 en lugar del puerto 80.
Integración con Docker Swam
Si desea implementar su aplicación en un entorno distribuido con múltiples nodos, Docker Compose puede integrarse con Docker Swarm. Esto le permite administrar servicios en múltiples nodos en un Docker clúster.
Para usar esta integración, solo necesita agregar las opciones --orchestrate o --with-registry-auth al ejecutar los comandos docker stack deploy o docker-compose up en un Swarm entorno.
Docker Compose es una herramienta útil para el desarrollo, prueba e implementación de aplicaciones fácil y eficiente. Minimiza las diferencias entre los entornos de desarrollo y producción, garantiza la coherencia en el proceso de desarrollo de software y mejora la productividad de los equipos de desarrollo.

