Instalar Docker Compose en Debian 9

Cómo instalar Docker Compose y ejecutar una aplicación multi-contenedor en Debian 9.

Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker multicontenedor. Los servicios se configuran en un archivo YAML, lo que permite levantar todo el entorno con un único comando.

Características principales:

  • múltiples entornos aislados en un mismo host;
  • los datos de los volúmenes se conservan al recrear los contenedores;
  • solo se recrean los contenedores que han cambiado;
  • las variables pueden transferirse entre entornos.

Antes de instalar Docker Compose, asegúrate de que Docker ya esté instalado — consulta Instalación de Docker en Debian 9.

Instalación

Descarga Docker Compose desde el repositorio de GitHub. Comprueba la última versión disponible y actualiza el número de versión en el comando si es necesario:

sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

Asigna el permiso de ejecución:

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

Verifica la instalación:

docker-compose --version

Salida esperada:

docker-compose version 1.25.5, build 8a1c60f6

Ejecutar un contenedor con Docker Compose

Crea un directorio para el proyecto de prueba y accede a él:

mkdir hello-world
cd hello-world

Crea un archivo docker-compose.yml:

nano docker-compose.yml

Añade el siguiente contenido y guarda el archivo:

my-test:
 image: hello-world

La primera línea define parte del nombre del contenedor, la segunda especifica la imagen. Cuando se ejecuta docker-compose up, Docker busca primero la imagen en local y, si no la encuentra, la descarga de Docker Hub.

Comprueba la lista de imágenes locales:

docker images

Si no hay imágenes, solo aparecerán las cabeceras de las columnas:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

Inicia el contenedor:

docker-compose up

Docker descargará la imagen, creará el contenedor y lo ejecutará:

Creating hello-world_my-test_1 ... done
Attaching to hello-world_my-test_1
my-test_1  | 
my-test_1  | Hello from Docker!
my-test_1  | This message shows that your installation appears to be working correctly.
...
hello-world_my-test_1 exited with code 0

El contenedor se detiene al finalizar el programa. No aparecerá en la lista de procesos activos:

docker ps

Para ver todos los contenedores, incluidos los detenidos, usa el flag -a:

docker ps -a

Ejemplo de salida:

CONTAINER ID   IMAGE         COMMAND    CREATED         STATUS                     NAMES
4e8158d490ac   hello-world   "/hello"   7 minutes ago   Exited (0) 7 minutes ago   hello-world_my-test_1

Ayuda

¿Tienes dudas o necesitas ayuda? Escríbenos a través del sistema de tickets — siempre estamos aquí para ayudarte!

¿Necesitas ayuda?Nuestros ingenieros te ayudarán gratuitamente con cualquier pregunta en minutosContáctanos