Cómo instalar Docker Compose en Debian 10

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Instalación de Docker Compose
  • Paso 2: Ejecutar un contenedor con Docker Compose
  • Paso 3: eliminar la imagen (opcional)
  • Conclusión
  • Docker es una excelente herramienta para automatizar la implementación de aplicaciones Linux dentro de contenedores de software, pero para aprovechar al máximo su potencial, cada componente de una aplicación debe ejecutarse en su propio contenedor individual. En el caso de aplicaciones complejas con muchos componentes, organizar todos los contenedores para que se inicien, se comuniquen y se apaguen juntos puede volverse rápidamente una tarea difícil.

    La comunidad Docker ideó una solución popular llamada Fig, que permitía utilizar un único archivo YAML para organizar todos los contenedores y configuraciones de Docker. Esta solución se volvió tan popular que el equipo de Docker decidió crear Docker Compose basándose en el código fuente de Fig, que ahora está en desuso. Docker Compose permite a los usuarios organizar los procesos de los contenedores de Docker, incluidos el inicio, el apagado y la configuración de vínculos y volúmenes dentro de los contenedores.

    En este tutorial, instalará la última versión de Docker Compose para ayudarlo a administrar aplicaciones multicontenedor en un servidor Debian 10.

    Prerrequisitos

    Para seguir este artículo, necesitarás:

    • Un servidor Debian 10 y un usuario no root con privilegios sudo. Este tutorial de configuración inicial de un servidor con Debian 10 explica cómo hacerlo.
    • Docker instalado con las instrucciones del Paso 1 y el Paso 2 de Cómo instalar y usar Docker en Debian 10

    Nota: Aunque los requisitos previos brindan instrucciones para instalar Docker en Debian 10, los dockercomandos de este artículo deberían funcionar en otros sistemas operativos siempre que Docker esté instalado.

    Paso 1: Instalación de Docker Compose

    Aunque puedes instalar Docker Compose desde los repositorios oficiales de Debian, se trata de varias versiones menores atrasadas de la última versión, por lo que en este tutorial lo instalarás desde el repositorio de GitHub de Docker. El comando que sigue es ligeramente diferente al que encontrarás en la página de versiones. Al usar el -oindicador para especificar primero el archivo de salida en lugar de redirigir la salida, esta sintaxis evita encontrarse con un error de "permiso denegado" causado al usar sudo.

    Verifique la versión actual y, si es necesario, actualícela con el siguiente comando:

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

    A continuación configuraremos los permisos:

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

    Luego verificaremos que la instalación fue exitosa verificando la versión:

    1. docker-compose --version

    Esto imprimirá la versión que instalamos:

    Outputdocker-compose version 1.25.3, build d4d1b42b

    Ahora que tenemos instalado Docker Compose, estamos listos para ejecutar un ejemplo de "Hola mundo".

    Paso 2: Ejecutar un contenedor con Docker Compose

    El registro público de Docker, Docker Hub, incluye una imagen de Hello World para demostración y prueba. Ilustra la configuración mínima necesaria para ejecutar un contenedor con Docker Compose: un archivo YAML que llama a una sola imagen. Crearemos esta configuración mínima para ejecutar nuestro hello-worldcontenedor.

    Primero, crea un directorio para el archivo YAML y cámbiate a él:

    1. mkdir hello-world
    2. cd hello-world

    Luego crea el archivo YAML:

    1. nano docker-compose.yml

    Coloque el siguiente contenido en el archivo, guarde el archivo y salga del editor de texto:

    docker-compose.yml

    my-test: image: hello-world

    La primera línea del archivo YAML se utiliza como parte del nombre del contenedor. La segunda línea especifica qué imagen se utilizará para crear el contenedor. Cuando ejecutamos el docker-compose upcomando, buscará una imagen local con el nombre que especificamos. hello-worldUna vez que lo hayamos hecho, guardaremos y saldremos del archivo.

    Puedes mirar manualmente las imágenes en nuestro sistema con el docker imagescomando:

    1. docker images

    Cuando no hay imágenes locales, solo se muestran los encabezados de las columnas:

    OutputREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

    Ahora, mientras aún está en el ~/hello-worlddirectorio, ejecute el siguiente comando:

    1. docker-compose up

    La primera vez que ejecute el comando, si no hay una imagen local llamada hello-world, Docker Compose la extraerá del repositorio público de Docker Hub:

    OutputPulling my-test (hello-world:)...latest: Pulling from library/hello-world9db2ca6ccae0: Pull completeDigest: sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdcStatus: Downloaded newer image for hello-world:latest. . .

    Después de extraer la imagen, docker-composecrea un contenedor, lo adjunta y ejecuta el programa hello, que a su vez confirma que la instalación parece estar funcionando:

    Output. . .Creating helloworld_my-test_1...Attaching to helloworld_my-test_1my-test_1 |my-test_1 | Hello from Docker.my-test_1 | This message shows that your installation appears to be working correctly.my-test_1 |. . .

    Luego imprime una explicación de lo que hizo:

    Output To generate this message, Docker took the following steps:my-test_1  |  1. The Docker client contacted the Docker daemon.my-test_1  |  2. The Docker daemon pulled the "hello-world" image from the Docker Hub.my-test_1  |     (amd64)my-test_1  |  3. The Docker daemon created a new container from that image which runs themy-test_1  |     executable that produces the output you are currently reading.my-test_1  |  4. The Docker daemon streamed that output to the Docker client, which sent itmy-test_1  |     to your terminal.

    Los contenedores Docker solo se ejecutan mientras el comando esté activo, por lo que una vez helloque terminan de ejecutarse, el contenedor se detiene. En consecuencia, cuando observamos los procesos activos, aparecerán los encabezados de columna, pero el hello-worldcontenedor no aparecerá en la lista porque no se está ejecutando:

    1. docker ps
    OutputCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES

    Puede ver la información del contenedor, que necesitará en el siguiente paso, mediante el uso de la -abandera. Esto muestra todos los contenedores, no solo los activos:

    1. docker ps -a
    OutputCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES06069fd5ca23        hello-world         "/hello"            35 minutes ago      Exited (0) 35 minutes ago                       hello-world_my-test_1

    Aquí se muestra la información que necesitarás para retirar el contenedor cuando hayas terminado de usarlo.

    Paso 3: eliminar la imagen (opcional)

    Para evitar utilizar espacio de disco innecesario, eliminaremos la imagen local. Para ello, tendremos que eliminar todos los contenedores que hagan referencia a la imagen mediante el docker rmcomando, seguido de o CONTAINER ID. NAMEEn el siguiente ejemplo, utilizamos el CONTAINER IDdel docker ps -acomando que acabamos de ejecutar. Asegúrese de sustituir el ID de su contenedor:

    1. docker rm 06069fd5ca23

    Una vez eliminados todos los contenedores que hacen referencia a la imagen, podemos eliminar la imagen:

    1. docker rmi hello-world

    Conclusión

    Instaló Docker Compose en Debian 10, probó su instalación ejecutando un ejemplo de Hello World y eliminó la imagen de prueba y el contenedor.

    Si bien el ejemplo de Hello World confirmó la instalación, esta configuración básica no muestra uno de los principales beneficios de Docker Compose: poder activar y desactivar un grupo de contenedores Docker al mismo tiempo. Para ver cómo usar Docker Compose con más detalle, consulte Cómo instalar WordPress con Docker Compose.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion