— Instalar Docker Compose en Ubuntu 24.04
¿Qué es Docker Compose?
En el ámbito del desarrollo moderno de aplicaciones, Docker Compose se ha convertido en una herramienta indispensable para gestionar entornos multi-contenedor de manera eficiente. Facilitando la orquestación de servicios y la configuración de redes, Docker Compose simplifica enormemente el proceso de desarrollo, pruebas y despliegue de aplicaciones en contenedores. En este artículo, exploraremos paso a paso cómo instalar Docker Compose, configurarlo correctamente y aprovechar al máximo su potencial para crear entornos de desarrollo robustos y escalables. Prepárate para optimizar tu flujo de trabajo con Docker Compose y llevar tus proyectos al siguiente nivel.
Instalar Docker Compose
En primer lugar es primordial haber realizado previamente la instalación de Docker puedes seguir esta guía sobre como hacerlo en Ubuntu 24.4.
Descarga la última versión de Docker Compose del repositorio de GitHub oficial. Ejecuta el siguiente comando en tu terminal:
curl -SL https://github.com/docker/compose/releases/download/v2.28.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
A continuación, otorga permisos de ejecución a Docker Compose:
sudo chmod +x /usr/local/bin/docker-compose
La opción --version
te permite comprobar si Compose se ha instalado correctamente.
docker-compose --version
Visualizará un resultado similar a esto:
Output docker-compose version 2.28.0, build 8a1c60f6
Docker Compose se ha instalado correctamente en su sistema. En la siguiente sección, veremos cómo configurar un archivo docker-compose.yml
y obtener un entorno en contenedor listo para usarse con esta herramienta.
Configurar un archivo docker-compose.yml
Para demostrar cómo configurar un archivo docker-compose-yml y trabajar con Docker Compose, crearemos un entorno de servidor web usando la imagen Nginx oficial de Docker Hub, el registro público de Docker. Este entorno en contenedor servirá como archivo HTML estático único.
Comience creando un nuevo directorio en su carpeta de inicio, y luego muévalo a él:
mkdir ~/compose-demo cd ~/compose-demo
En este directorio, configure una carpeta de aplicaciones que servirá como la raíz del documento para su entorno Nginx:
mkdir app
Usando su editor de texto preferido, cree un nuevo archivo index.html
en la carpeta app
:
nano app/index.html
Coloque el siguiente contenido en este archivo:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Docker Compose Demo</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/kognise/water.css@latest/dist/dark.min.css">
</head>
<body>
<h1>This is a Docker Compose Demo Page.</h1>
<p>This content is being served by an Nginx container.</p>
</body>
</html>
Guarde y cierre el archivo cuando termine. Si utiliza nano
, puede hacerlo pulsando CTRL+X
, Y
e INTRO
para confirmar.
A continuación, cree el archivo docker-compose.yml
:
nano docker-compose.yml
Inserte el siguiente contenido en su archivo docker-compose.yml
:
version: '3.7' services: web: image: nginx:alpine ports: - "8000:80" volumes: - ./app:/usr/share/nginx/html
El archivo docker-compose.yml
normalmente comienza con la definición de la versión
. Esto indicará a Docker Compose qué versión de la configuración estamos usando.
Luego tenemos el bloque services
, donde configuramos los servicios que son parte de este entorno. En nuestro caso, tenemos un único servicio llamado web
. Este servicio utiliza la imagen nginx:alpine
y establece una redirección de puerto con la directiva ports
. Todas las solicitudes en el puerto 8000
del equipo host (el sistema desde el cual está ejecutando Docker Compose) serán redirigidas al contenedor web
en el puerto 80
, donde se ejecutará Nginx.
La directiva volumes
creará un volumen compartido entre el equipo host y el contenedor. Esto compartirá la carpeta app
local con el contenedor, y el volumen se ubicará en /usr/share/nginx/html
dentro del contenedor, que luego sobreescribirá la raíz predeterminada del documento para Nginx.
Guarde y cierre el archivo.
Hemos creado una página demo y un archivo docker-compose.yml
para crear un entorno de servidor web en contenedor que lo presentará. En el siguiente paso, abriremos este entorno con Docker Compose.
Ejecutar Docker Compose
Con el archivo docker-compose.yml
implementado, ahora podemos ejecutar Docker Compose para mostrar nuestro entorno. El siguiente comando descargará las imágenes Docker necesarias, creará un contenedor para el servicio web
y ejecutará el entorno en contenedor en modo segundo plano:
docker-compose up -d
Docker Compose primero buscará la imagen definida en su sistema local, y si no puede encontrar la imagen, descargará la imagen desde Docker Hub. Verá un resultado como este:
Output Creating network "compose-demo_default" with the default driver Pulling web (nginx:alpine)... alpine: Pulling from library/nginx cbdbe7a5bc2a: Pull complete 10c113fb0c77: Pull complete 9ba64393807b: Pull complete c829a9c40ab2: Pull complete 61d685417b2f: Pull complete Digest: sha256:57254039c6313fe8c53f1acbf15657ec9616a813397b74b063e32443427c5502 Status: Downloaded newer image for nginx:alpine Creating compose-demo_web_1 ... done
Su entorno ahora está funcionando en segundo plano. Para verificar que el contenedor está activo, puede ejecutar:
docker-compose ps
Este comando le mostrará información sobre los contenedores en ejecución y su estado, además de cualquier redireccionamiento de puertos en vigor actualmente:
Output Name Command State Ports ---------------------------------------------------------------------------------- compose-demo_web_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8000->80/tcp
Ahora puede acceder a la aplicación demo apuntando su servidor a localhost:8000
si está ejecutando esta demo en su equipo local, o a tu_dominio_o_IP:8000
si está ejecutando esta demo en un servidor remoto.
Verá una página como la siguiente:
El volumen compartido que ha configurado en el archivo docker-compose.yml
mantiene los archivos de su carpeta app
sincronizados con la raíz del documento del contenedor. Si realiza algún cambio al archivo index.html
, serán recogidos automáicamente por el contenedor y se reflejarán en su navegador cuando vuelva a cargar la página.
Pues con este punto finalizamos la instalación de Docker Compose y como usarlo. Estad atentos a próximos posts ya que serán bastante interesantes.