Ubuntu: instalar Docker Compose

Docker Compose es especialmente adecuado para entornos de desarrollo y de prueba, así como para pequeñas implementaciones de proyectos. Te explicamos cómo puedes orquestar fácilmente aplicaciones en Ubuntu con Docker Compose.

¿Cuáles son los requisitos para Docker Compose en Ubuntu?

Antes de poder utilizar Docker Compose, asegúrate de que tu sistema cumple con los siguientes requisitos:

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

Si quieres utilizar un sistema operativo alternativo 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á ejecutando correctamente. Una vez que Docker se está ejecutando, puedes descargar Compose y crear el archivo YAML para configurar tus aplicaciones.

Paso 1. Descargar e instalar Docker Compose

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.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
shell

A continuació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 correctamente.

$ docker-compose --version
shell

Obtendrás el siguiente resultado:

Versión de Docker Compose
Si te aparece tu versión de Docker Compose, quiere decir que se ha instalado correctamente.

Si la instalació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. Configurar 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 repositorio oficial de Docker Hub para el entorno de contenedores.

Primero, crea una nueva carpeta en tu directorio principal:

$ mkdir ~/compose-test
shell

Cambia al directorio que acabas de crear y crea una nueva carpeta para el directorio 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 configuració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 continuación, aparece la imagen de Nginx utilizada y la redirección de puertos. En nuestro caso, todas las solicitudes al puerto 8000 del host se redirigen al contenedor web en el puerto 80, donde se ejecuta Nginx. Además, utilizamos un volumen compartido entre el host y el contenedor. Así, la carpeta local “app” es accesible para la aplicación de Nginx.

Paso 3. Ejecutar Docker Compose

Con el comando que se muestra a continuación, creamos un contenedor web y ejecutamos el entorno del contenedor en segundo plano:

$ docker-compose up -d
shell

Si la imagen que figura en el archivo YAML no está disponible en el sistema local, se descargará automáticamente.

Puedes introducir el comando ps para comprobar si el entorno Nginx se está ejecutando correctamente.

$ docker-compose ps
shell

La página de ejemplo que creaste anteriormente ya está accesible en localhost:8000 si ejecutas la demo localmente en tu ordenador. Si utilizas un servidor remoto, simplemente introduce la dirección IP de tu servidor en lugar de “localhost”.

Página de ejemplo de Docker Compose
Página de ejemplo para un contenedor Nginx

Con stop puedes detener la aplicación del contenedor.

$ docker-compose stop
shell
Consejo

Nuestro tutorial de Docker y nuestro resumen de los comandos de Docker pueden ayudarte a empezar a utilizar la herramienta de contenedores. También puedes obtener más información sobre la orquestación de contenedores Docker con Swarm y Compose