
docker-compose.yml
Si has empezado a trabajar con Docker, seguramente ya te has dado cuenta de que gestionar varios contenedores usando solo comandos puede volverse bastante complicado. Ahí es donde entra el archivo docker-compose.yml, que básicamente es tu mejor amigo para simplificar todo este proceso.
Aunque también puedes simplificar aún más el proceso utilizando una interfaz gráfica como Easy Panel en uno de nuestros servidores VPS Cloud.
El archivo docker-compose.yml es un archivo escrito en formato YAML que nos permite definir y gestionar múltiples contenedores Docker como si fuesen una sola aplicación. En lugar de tener que recordar comandos largos y complicados para cada contenedor, defines todo en este archivo y Docker Compose se encarga del resto.
Imagínate que necesitas montar una aplicación web que requiere una base de datos MySQL, un servidor web con PHP y quizás Redis para caché. Sin docker-compose.yml tendrías que crear cada contenedor por separado, configurar la red para que se comuniquen entre sí y gestionar cada uno independientemente.
Con docker-compose.yml defines todo en un solo archivo y con un simple comando tienes toda tu aplicación funcionando:
docker compose up
La principal ventaja del docker-compose.yml es que te permite orquestrar múltiples servicios de forma sencilla:
Puedes definir qué imagen Docker usar para cada servicio.
Que puertos exponer.
Que volúmenes montar para persistir datos.
Que variables de entorno configurar.
Cómo se conectan los diferentes servicios entre sí.
Para que veas lo sencillo que es, aquí tienes un ejemplo práctico de un docker-compose.yml para una aplicación WordPress:
# Servicio de base de datos MySQL db:
image: mysql:8.0 container_name: wordpress_db
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppassword
MYSQL_ROOT_PASSWORD: rootpassword
volumes:
- db_data:/var/lib/mysql
networks:
- wordpress_network
# Servicio de WordPress wordpress:
depends_on:
- db
image: wordpress:latest
container_name: wordpress_app
restart: always
ports:
- "8080:80" environment:
WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppassword
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
networks:
- wordpress_network
# Definición de volúmenes para persistir datosvolumes:
db_data:
wordpress_data:
# Red personalizada (opcional, Docker Compose crea una por defecto)networks:
wordpress_network:
driver: bridge
Este ejemplo crea dos servicios: uno para WordPress y otro para MySQL. Docker Compose automáticamente crea una red para que se comuniquen entre sí, monta los volúmenes necesarios para que los datos persistan y configura todas las variables de entorno.
Los campos más importantes que encontrarás en un docker-compose.yml son:
services: Define cada uno de los contenedores que formarán tu aplicación
image: La imagen Docker que usará cada servicio
ports: Los puertos que quieres exponer del contenedor al host
environment: Variables de entorno necesarias para la configuración
volumes: Para persistir datos y compartir archivos entre el host y el contenedor
La gran ventaja de Docker Compose, es que, una vez que tienes tu docker-compose.yml configurado, puedes llevártelo a cualquier servidor con Docker instalado y tendrás exactamente la misma infraestructura funcionando, aunque son los datos de los volumenes, ya que se crearan de nuevo.
Esta ventaja es perfecta para desarrollo local, staging y producción, garantizando que todo funcione igual en todos los entornos.
Para usar docker-compose.yml solo necesitas tener Docker y Docker Compose instalados en tu servidor VPS o servidor dedicado. Una vez tengas tu archivo configurado, debes ejecutar el siguiente comando para levantar todos los servicios en segundo plano:
docker compose up -d
Si quieres parar todos los servicios a la vez y eliminarlos, puedes utilizar el siguiente comando:
docker compose down
Si quieres ver el log o registro de cada contenedor levantado con Docker Compose, puedes utilizar el siguiente comando:
docker compose logs
Si estás empezando a trabajar con contenedores Docker o necesitas gestionar aplicaciones complejas, aprender a usar docker-compose.yml te va a ahorrar muchísimo tiempo y quebraderos de cabeza.
Recuerda que puedes utilizar Docker en nuestros servidores VPS Cloud, ya que utilizan KVM como sistema de virtualización y, por lo tanto, ejecutan una virtualización completa.

Álvaro Fontela
Consultor WordPress, además de CEO y cofundador de Raiola Networks. Autor del libro "Curso Práctico de WordPress" y speaker en congresos de marketing digital.
Autor


¿Te gusta nuestro contenido?
Si quieres ser el primero en leer nuestro contenido y enterarte de nuestras noticias.
HOSTING SSD desde 8,95€
Haz clic aquí¿Te ayudamos?
Escríbenos si tienes dudas o necesitas una solución específica
Categorías
Destacados
