# 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](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/docker-compose-tutorial/), 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](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/docker-compose-en-windows/) o cómo instalar [Docker Compose en macOS](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/docker-compose-en-mac/).

## 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](https://www.ionos.com/es-us/digitalguide/servidores/know-how/que-es-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:

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

A continuación, otorga **permisos de ejecución** a Docker Compose:

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

La opción `--version` te permite comprobar si Compose se ha instalado correctamente.

```shell
$ docker-compose --version
```

Obtendrás el siguiente resultado:

[![Imagen: Versión de Docker Compose](https://www.ionos.com/es-us/digitalguide/fileadmin/_processed_/b/1/csm_docker-compose-version-ubuntu_428c28abad.webp "Versión de Docker Compose")](https://www.ionos.com/es-us/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-compose-version-ubuntu.png) 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*:

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

### 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:

```shell
$ mkdir ~/compose-test
```

Cambia al directorio que acabas de crear y crea una nueva carpeta para el directorio raíz de tu **entorno de Nginx**.

```shell
$ cd ~/compose-test
$ mkdir app
```

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

```shell
$ nano app/index.html
```

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

```html
<!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>
<div class="hash d-none" hidden>hash_74d9c0987475bc6ad601e55a48ac6a03f25278b0</div><script data-shy-copy-guard>(function(){var C=[0x00AD,0x200B,0x200C,0x200D,0x2060,0xFEFF];var s=function(t){for(var i=0;i<C.length;i++){t=t.split(String.fromCharCode(C[i])).join("");}return t;};document.addEventListener("copy",function(e){var sel=document.getSelection();if(!sel||sel.isCollapsed||!e.clipboardData){return;}e.clipboardData.setData("text/plain",s(sel.toString()));try{var d=document.createElement("div");d.appendChild(sel.getRangeAt(0).cloneContents());e.clipboardData.setData("text/html",s(d.innerHTML));}catch(x){}e.preventDefault();});})();</script></body>
</html>
```

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

```shell
$ nano docker-compose.yml
```

El contenido está dividido en dos partes: el número de versión de la configuración y el bloque de servicios.

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

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:

```shell
$ docker-compose up -d
```

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.

```shell
$ docker-compose ps
```

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”.

[![Imagen: Página de ejemplo de Docker Compose](https://www.ionos.com/es-us/digitalguide/fileadmin/_processed_/b/8/csm_docker-compose-test-page-ubuntu_f263b18904.webp "Página de ejemplo de Docker Compose")](https://www.ionos.com/es-us/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-compose-test-page-ubuntu.png) Página de ejemplo para un contenedor Nginx Con `stop` puedes detener la aplicación del contenedor.

```shell
$ docker-compose stop
```

Consejo Nuestro [tutorial de Docker](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/tutorial-docker-instalacion-y-primeros-pasos/) y nuestro resumen de los [comandos de Docker](https://www.ionos.com/es-us/digitalguide/servidores/know-how/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](https://www.ionos.com/es-us/digitalguide/servidores/know-how/docker-compose-y-swarm-gestion-multicontenedor/)


This is a markdown version of: [https://www.ionos.com/es-us/digitalguide/servidores/configuracion/docker-compose-en-ubuntu/](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/docker-compose-en-ubuntu/) for AI/LLM consumption.