Instalar y usar Docker Compose en Ubuntu: guía completa
Docker Compose ha cambiado de forma fundamental la manera en que los desarrolladores trabajan con aplicaciones contenerizadas, especialmente al coordinar servicios que dependen entre sí. Esta herramienta reemplaza la gestión manual de contenedores por un flujo de trabajo estructurado basado en YAML, lo que permite a los equipos definir arquitecturas completas de aplicaciones en un único archivo de configuración.
En entornos Ubuntu, esto se traduce en despliegues reproducibles, escalado simplificado y una reducción del esfuerzo operativo. Esta guía ofrece una perspectiva actualizada sobre la instalación y el uso de Docker Compose, proporcionando una visión más profunda de su implementación práctica.
Requisitos previos Copiar enlace
Antes de comenzar este tutorial, asegúrate de contar con lo siguiente:
-
Implementar una instancia de servidor cloud con Ubuntu en Hostman.
-
Disponer de una cuenta de usuario con privilegios sudo o acceso root para instalar paquetes y administrar Docker.
-
Tener Docker instalado y en ejecución en el servidor, ya que Docker Compose funciona sobre Docker Engine.
Por qué Docker Compose es importante Copiar enlace
Las aplicaciones modernas suelen estar compuestas por múltiples componentes interconectados, como APIs, bases de datos y capas de caché. Gestionar estos elementos individualmente mediante comandos de Docker se vuelve complicado a medida que aumenta la complejidad. Docker Compose soluciona esto permitiendo declarar todos los servicios, redes y requisitos de almacenamiento en un archivo docker-compose.yml. Este enfoque garantiza la consistencia entre entornos, ya sea en una máquina Ubuntu local o en un servidor en la nube.
Por ejemplo, una aplicación web compuesta por un backend en Node.js, una base de datos PostgreSQL y una caché Redis. Sin Docker Compose, cada componente requiere un comando docker run independiente con configuraciones de red precisas. Con Compose, estas relaciones se definen una sola vez, permitiendo iniciar y detener toda la aplicación con un solo comando.
Instalación de Docker Compose Copiar enlace
Sigue estos pasos para instalar Docker Compose en tu sistema Ubuntu.
Paso 1: Verificar que Docker esté instalado y en ejecución Copiar enlace
Docker Compose funciona como una extensión de Docker, por lo que primero debes comprobar su estado:
sudo systemctl status docker
Si el servicio no está activo, inícialo con:
sudo systemctl start docker
Paso 2: Actualizar los paquetes del sistema Copiar enlace
Actualiza las listas de paquetes para asegurarte de tener acceso a las versiones más recientes del software:
sudo apt-get update
Paso 3: Instalar utilidades básicas Copiar enlace
Para una comunicación segura con los repositorios de Docker, se requieren los siguientes paquetes:
sudo apt-get install ca-certificates curl
Paso 4: Configurar la clave GPG de Docker Copiar enlace
Autentica los paquetes de Docker añadiendo su clave criptográfica:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Este paso garantiza que los paquetes no hayan sido modificados durante la descarga.
Paso 5: Añadir el repositorio de Docker Copiar enlace
Agrega el repositorio correspondiente a tu versión de Ubuntu:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
El comando detecta automáticamente la versión del sistema operativo mediante VERSION_CODENAME.
Paso 6: Instalar el plugin de Docker Compose Copiar enlace
Actualiza los repositorios e instala la extensión Compose:
sudo apt update
sudo apt-get install docker-compose-plugin
Paso 7: Validar la instalación Copiar enlace
Confirma que la instalación se haya realizado correctamente:
docker compose version
Salida de ejemplo:
Docker Compose version v2.33.0
Crear un proyecto práctico con Docker Compose Copiar enlace
Para demostrar las capacidades de Docker Compose, vamos a desplegar un servidor web utilizando Nginx.
1. Inicializar el directorio del proyecto Copiar enlace
Crea un espacio de trabajo dedicado:
mkdir ~/compose-demo && cd ~/compose-demo
2. Definir los servicios en docker-compose.yml Copiar enlace
Crea el archivo de configuración:
nano docker-compose.yml
Inserta el siguiente contenido:
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./app:/usr/share/nginx/html
Explicación:
-
services: Elemento raíz que define los contenedores
-
web: Nombre personalizado del servicio
-
image: Imagen de Nginx basada en Alpine con menor consumo de recursos
-
ports: Mapea el puerto 8080 del host al puerto 80 del contenedor
-
volumes: Sincroniza el directorio local app con la raíz web del contenedor
3. Crear el contenido web Copiar enlace
Construye la estructura HTML:
mkdir app
nano app/index.html
Añade el siguiente contenido:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Docker Compose Test</title>
</head>
<body>
<h1>Hello from Docker Compose!</h1>
</body>
</html>
Orquestación de contenedores: del inicio al apagado Copiar enlace
1. Iniciar los servicios en segundo plano Copiar enlace
docker compose up -d
Docker Compose descargará automáticamente la imagen de Nginx si no está disponible y configurará la red.
2. Verificar el estado de los contenedores Copiar enlace
docker compose ps -a
3. Acceder a la aplicación web Copiar enlace
Abre http://localhost:8080 localmente o http://<SERVER_IP>:8080 en servidores remotos. La página de prueba debería mostrarse correctamente.
4. Diagnosticar problemas mediante logs Copiar enlace
Si la página no carga o surgen errores, revisa los logs del contenedor:
docker compose logs web
5. Apagado y limpieza ordenados Copiar enlace
Detener los contenedores temporalmente:
docker compose stop
Eliminar todos los recursos del proyecto:
docker compose down
Referencia de comandos: más allá de lo básico Copiar enlace
Estos comandos amplían la gestión de contenedores:
-
docker compose up --build – Reconstruir las imágenes antes de iniciar los contenedores
-
docker compose pause – Pausar contenedores sin finalizarlos
-
docker compose top – Mostrar los procesos en ejecución dentro de los contenedores
-
docker compose config – Validar y mostrar la configuración final
-
docker compose exec – Ejecutar comandos dentro de contenedores activos
(por ejemplo, docker compose exec web nginx -t para probar la configuración de Nginx)
Conclusión Copiar enlace
Docker Compose transforma la orquestación de múltiples contenedores de una tarea manual y compleja en un proceso estructurado, repetible y eficiente. Siguiendo los pasos descritos—instalando Docker Compose, definiendo servicios en YAML y utilizando los comandos esenciales—podrás gestionar aplicaciones complejas con confianza.