Docker Compose es es­pe­cia­l­me­n­te adecuado para entornos de de­sa­rro­llo y de prueba, así como para pequeñas im­ple­me­n­ta­cio­nes de proyectos. Te ex­pli­ca­mos cómo puedes orquestar fá­ci­l­me­n­te apli­ca­cio­nes en Ubuntu con Docker Compose.

¿Cuáles son los re­qui­si­tos para Docker Compose en Ubuntu?

Antes de poder utilizar Docker Compose, asegúrate de que tu sistema cumple con los si­guie­n­tes re­qui­si­tos:

  • Docker Engine: Compose es una extensión de Docker Engine, la cual debes tener instalada.
  • Sistema operativo: Ubuntu y un usuario sudo con pri­vi­le­gios de root.
Consejo

Si quieres utilizar un sistema operativo al­te­r­na­ti­vo a Linux, consulta nuestra guía sobre cómo instalar Docker Compose en Windows o cómo instalar Docker Compose en macOS.

Guía paso a paso: instalar Docker Compose en Ubuntu

Para utilizar Docker Compose en Ubuntu, primero debes instalar Docker Engine en tu sistema y comprobar que se está eje­cu­ta­n­do co­rre­c­ta­me­n­te. Una vez que Docker se está eje­cu­ta­n­do, puedes descargar Compose y crear el archivo YAML para co­n­fi­gu­rar tus apli­ca­cio­nes.

Paso 1. Descargar e instalar Docker Compose

Descarga la última versión de Docker Compose del re­po­si­to­rio de GitHub oficial. Ejecuta el siguiente comando en tu terminal:

$ curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
shell

A co­n­ti­nua­ción, otorga permisos de ejecución a Docker Compose:

$ sudo chmod +x /usr/local/bin/docker-compose
shell

La opción --version te permite comprobar si Compose se ha instalado co­rre­c­ta­me­n­te.

$ docker-compose --version
shell

Obtendrás el siguiente resultado:

Imagen: Versión de Docker Compose
Si te aparece tu versión de Docker Compose, quiere decir que se ha instalado co­rre­c­ta­me­n­te.

Si la in­s­ta­la­ción falla, debes comprobar la ruta.

También puedes crear un enlace simbólico hacia la ruta /usr/bin:

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
shell

Paso 2. Co­n­fi­gu­rar el archivo docker-compose.yml

Para mostrarte el diseño de un archivo YAML de Docker Compose, vamos a utilizar la imagen de Nginx del re­po­si­to­rio oficial de Docker Hub para el entorno de co­n­te­ne­do­res.

Primero, crea una nueva carpeta en tu di­re­c­to­rio principal:

$ mkdir ~/compose-test
shell

Cambia al di­re­c­to­rio que acabas de crear y crea una nueva carpeta para el di­re­c­to­rio raíz de tu entorno de Nginx.

$ cd ~/compose-test
$ mkdir app
shell

Puedes utilizar cualquier editor de texto para crear un index.html, por ejemplo, nano.

$ nano app/index.html
shell

Aquí tienes el código HTML de una página de ejemplo:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Docker Compose Test</title>
</head>
<body>
    <h1>This is a Docker Compose Test Page for an Nginx container.</h1>
</body>
</html>
html

Guarda y cierra el archivo HTML, y crea el archivo docker-compose.yml.

$ nano docker-compose.yml
shell

El contenido está dividido en dos partes: el número de versión de la co­n­fi­gu­ra­ción y el bloque de servicios.

version: '3.9'
services:
    web:
        image: nginx:alpine
        ports:
            - "8000:80"
        volumes:
- ./app:/usr/share/nginx/html
YAML

En el bloque de servicios, “web” aparece como el único servicio. A co­n­ti­nua­ción, aparece la imagen de Nginx utilizada y la re­di­re­c­ción de puertos. En nuestro caso, todas las so­li­ci­tu­des al puerto 8000 del host se redirigen al co­n­te­ne­dor web en el puerto 80, donde se ejecuta Nginx. Además, uti­li­za­mos un volumen co­m­pa­r­ti­do entre el host y el co­n­te­ne­dor. Así, la carpeta local “app” es accesible para la apli­ca­ción de Nginx.

Paso 3. Ejecutar Docker Compose

Con el comando que se muestra a co­n­ti­nua­ción, creamos un co­n­te­ne­dor web y eje­cu­ta­mos el entorno del co­n­te­ne­dor en segundo plano:

$ docker-compose up -d
shell

Si la imagen que figura en el archivo YAML no está di­s­po­ni­ble en el sistema local, se de­s­ca­r­ga­rá au­to­má­ti­ca­me­n­te.

Puedes in­tro­du­cir el comando ps para comprobar si el entorno Nginx se está eje­cu­ta­n­do co­rre­c­ta­me­n­te.

$ docker-compose ps
shell

La página de ejemplo que creaste an­te­rio­r­me­n­te ya está accesible en localhost:8000 si ejecutas la demo lo­ca­l­me­n­te en tu ordenador. Si utilizas un servidor remoto, si­m­ple­me­n­te introduce la dirección IP de tu servidor en lugar de “localhost”.

Imagen: Página de ejemplo de Docker Compose
Página de ejemplo para un co­n­te­ne­dor Nginx

Con stop puedes detener la apli­ca­ción del co­n­te­ne­dor.

$ docker-compose stop
shell
Consejo

Nuestro tutorial de Docker y nuestro resumen de los comandos de Docker pueden ayudarte a empezar a utilizar la he­rra­mie­n­ta de co­n­te­ne­do­res. También puedes obtener más in­fo­r­ma­ción sobre la or­que­s­ta­ción de co­n­te­ne­do­res Docker con Swarm y Compose

Ir al menú principal