Contenedor: Docker Compose en Ubuntu 16.04
¿Qué es Docker Compose?
Docker Compose es una herramienta para ejecutar aplicaciones Docker de múltiples contenedores. Para configurar los servicios de una aplicación con Compose utilizamos un archivo de configuración, y luego, ejecutando un solo comando, es posible crear e iniciar todos los servicios especificados en la configuración.
Docker Compose es útil para muchos proyectos diferentes como:
- Desarrollo: con las herramientas de línea de comandos de Compose creamos (e interactuamos con) un entorno aislado que alojará la aplicación que se está desarrollando.
Al utilizar el archivo Compose, los desarrolladores documentan y configuran todas las dependencias del servicio de la aplicación. - Pruebas automatizadas: este caso de uso requiere un entorno para ejecutar pruebas. Compose proporciona una manera conveniente de administrar entornos de prueba aislados para un conjunto de pruebas. El entorno completo se define en el archivo Compose.
Docker Compose se creó con el código fuente de Fig, un proyecto comunitario que ahora no se utiliza.
En este tutorial veremos cómo instalar Docker Compose en una máquina Ubuntu 16.04.
Instalar ventana acoplable
Necesitamos Docker para poder instalar Docker Compose. Primero, agregue la clave pública para el repositorio oficial de Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add-
A continuación, agregue el repositorio de Docker a
apt
lista de fuentes:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Actualice la base de datos de paquetes e instale Docker con
apt
:
sudo apt-get update
sudo apt install docker-ce
Al final del proceso de instalación, el demonio Docker debe iniciarse y habilitarse para cargarse en el momento del arranque. Podemos comprobar su estado con el siguiente comando:
sudo systemctl status docker
---------------------------------
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running)
Instalar Docker Compose
En este punto es posible instalar Docker Compose. Descargue la versión actual ejecutando el siguiente comando:
curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
Haga que el binario descargado sea ejecutable:
chmod +x /usr/local/bin/docker-compose
Verifique la versión de Docker Compose:
docker-compose -v
La salida debería ser algo como esto:
docker-compose version 1.14.0, build c7bdf9e
Prueba de composición de Docker
Docker Hub incluye una imagen de Hello World con fines de demostración, que ilustra la configuración necesaria para ejecutar un contenedor con Docker Compose.
Cree un nuevo directorio y acceda a él:
mkdir hello-world
cd hello-world
Crea un nuevo archivo YAML:
$EDITOR docker-compose.yml
En este archivo pegue el siguiente contenido:
unixmen-compose-test:
image: hello-world
Nota: la primera línea se utiliza como parte del nombre del contenedor.
Guardar y Salir.
Ejecute el contenedor
A continuación, ejecute el siguiente comando en el directorio hello-world
:
sudo docker-compose up
Si todo es correcto, este debería ser el resultado mostrado por Compose:
Pulling unixmen-compose-test (hello-world:latest)...
latest: Pulling from library/hello-world
b04784fba78d: Pull complete
Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f
Status: Downloaded newer image for hello-world:latest
Creating helloworld_unixmen-compose-test_1 ...
Creating helloworld_unixmen-compose-test_1 ... done
Attaching to helloworld_unixmen-compose-test_1
unixmen-compose-test_1 |
unixmen-compose-test_1 | Hello from Docker!
unixmen-compose-test_1 | This message shows that your installation appears to be working correctly.
unixmen-compose-test_1 |
unixmen-compose-test_1 | To generate this message, Docker took the following steps:
unixmen-compose-test_1 | 1. The Docker client contacted the Docker daemon.
unixmen-compose-test_1 | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
unixmen-compose-test_1 | 3. The Docker daemon created a new container from that image which runs the
unixmen-compose-test_1 | executable that produces the output you are currently reading.
unixmen-compose-test_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it
unixmen-compose-test_1 | to your terminal.
unixmen-compose-test_1 |
unixmen-compose-test_1 | To try something more ambitious, you can run an Ubuntu container with:
unixmen-compose-test_1 | $ docker run -it ubuntu bash
unixmen-compose-test_1 |
unixmen-compose-test_1 | Share images, automate workflows, and more with a free Docker ID:
unixmen-compose-test_1 | https://cloud.docker.com/
unixmen-compose-test_1 |
unixmen-compose-test_1 | For more examples and ideas, visit:
unixmen-compose-test_1 | https://docs.docker.com/engine/userguide/
unixmen-compose-test_1 |
helloworld_unixmen-compose-test_1 exited with code 0
Los contenedores Docker solo se ejecutan mientras el comando esté activo, por lo que el contenedor se detendrá cuando la prueba termine de ejecutarse.
Conclusión
Con esto concluye el tutorial sobre la instalación de Docker Compose en una máquina Ubuntu 16.04. También hemos visto cómo crear un proyecto sencillo a través del archivo Compose en formato YAML.