Cómo instalar Docker Compose en Ubuntu 18.04

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á obsoleto.

    Docker Compose facilita a los usuarios la organización de los procesos de los contenedores 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 administrar aplicaciones de varios contenedores.

    Prerrequisitos

    Para seguir este artículo, necesitará un servidor Ubuntu 18.04 con lo siguiente:

    • Un usuario no root con privilegios de sudo ( Configuración inicial del servidor con Ubuntu 18.04 explica cómo configurarlo).
    • Docker instalado con las instrucciones del Paso 1 y Paso 2 de Cómo instalar y usar Docker en Ubuntu 18.04

    Nota: Este tutorial lo guiará en la instalación de Docker Compose v1, que utiliza docker-compose. A partir de Docker Compose v2, Docker ha migrado hacia el uso del composecomando CLI plugin como se documenta en nuestra última versión Ubuntu 22.04 de este tutorial , y se ha alejado del original docker-compose. Si bien la instalación difiere, en general, el uso real implica eliminar el guion de docker-composelas llamadas para convertirse en docker compose. Para obtener detalles completos sobre la compatibilidad, consulte la documentación oficial de Docker sobre la compatibilidad de comandos entre el nuevo composey el antiguo docker-compose.

    Paso 1: Instalación de Docker Compose

    Aunque puedes instalar Docker Compose desde los repositorios oficiales de Ubuntu, hay varias versiones menores detrás de la última versión, por lo que instalarás Docker Compose desde el repositorio de GitHub de Docker. El comando a continuación 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 que se produzca un error de permiso denegado que se produce 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.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

    A continuación, configure los permisos:

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

    Luego comprobarás que la instalación fue exitosa verificando la versión:

    1. docker-compose --version

    Esto imprimirá la versión que instalaste:

    Outputdocker-compose version 1.29.2, build 5becea4c

    Ahora que tienes instalado Docker Compose, estás listo 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:

    Primero, crearás un directorio para el archivo YAML y te moverás hacia él:

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

    Luego, crearás 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 ejecute el comando, docker-compose upbuscará una imagen local con el nombre que especificó. hello-worldUna vez que haya completado esta operación, guardará y saldrá del archivo.

    Puede mirar manualmente las imágenes en su 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ás en el ~/hello-worlddirectorio, ejecutarás 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)...latest: Pulling from library/hello-worldc04b14da8d14: Downloading [==================================================] c04b14da8d14: Extracting [==================================================]  c04b14da8d14: Extracting [==================================================]  c04b14da8d14: Pull completeDigest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9Status: Downloaded newer image for hello-world:latest. . .

    Nota: Si te encuentras con un error de permiso relacionado con el socket de Docker, esto significa que te saltaste el Paso 2 de Cómo instalar y usar Docker en Ubuntu 18.04 . Si regresas y completas ese paso, habilitarás los permisos para ejecutar comandos de Docker sin sudo.

    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 of docker-compose up. . .1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent it 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 miras 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, utilizando la -abandera que 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                       drunk_payne

    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, eliminará la imagen local. Para ello, deberá eliminar todos los contenedores que hagan referencia a la imagen mediante el docker rmcomando, seguido del ID DE CONTENEDOR o del NOMBRE. A continuación, está utilizando el ID DE CONTENEDOR del docker ps -acomando que acaba de ejecutar. Asegúrese de sustituir el ID de su contenedor:

    1. docker rm 06069fd5ca23

    Una vez que se hayan eliminado todos los contenedores que hacen referencia a la imagen, puedes eliminar la imagen:

    1. docker rmi hello-world

    Conclusión

    Ahora ha instalado Docker Compose, ha probado su instalación ejecutando un ejemplo de Hello World y ha eliminado la imagen de prueba y el contenedor.

    Si bien el ejemplo de Hello World confirmó la instalación, la configuración simple no muestra uno de los principales beneficios de Docker Compose: poder poner en funcionamiento y desactivar un grupo de contenedores Docker al mismo tiempo. Para ver el poder de Docker Compose en acción, es posible que desee consultar este ejemplo práctico: Cómo configurar un entorno de prueba de integración continua con Docker y Docker Compose en Ubuntu 16.04 (nota: este artículo es para Ubuntu 16.04 en lugar de 18.04)

    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