GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Primeros pasos con Docker Compose en Linux

Redacción de Docker es una herramienta para definir y ejecutar aplicaciones docker de varios contenedores en Linux. Con Compose, usamos un archivo YAML para configurar los servicios de nuestra aplicación. Y luego creamos e iniciamos todos los servicios desde la configuración con un solo comando. Aquí hay una ilustración gráfica simple que muestra cómo funciona la composición de Docker.

Cómo funciona la composición de Docker:una ilustración gráfica

Docker Compose es básicamente un proceso de tres pasos:

  1. Primero, necesitamos definir el entorno de la aplicación con un Dockerfile para que pueda reutilizarse de nuevo.
  2. En segundo lugar, definimos los servicios que componen la aplicación en docker-compose.yml para que puedan funcionar juntos en un entorno aislado.
  3. Finalmente, ejecutamos docker-compose up y Compose iniciará y ejecutará toda su aplicación.

Primeros pasos con Docker Compose en Linux

Docker Compose se puede instalar de dos maneras. Puede encontrar las instrucciones de instalación en la sección "Instalar Docker Compose" en los siguientes enlaces.

  • Cómo instalar Docker en Ubuntu
  • Cómo instalar Docker en CentOS

Después de la instalación, verifique la versión de Docker compose usando los comandos:

# docker-compose -version

O,

# docker-compose -v

O,

# docker-compose --version

Comprobar la versión de redacción de la ventana acoplable

Para obtener ayuda, simplemente ejecute:

# docker-compose -help

Este comando mostrará una lista de los comandos que puede ejecutar docker compose.

Ayuda para redactar la ventana acoplable

Ahora tomemos un archivo de composición simple de docker como ejemplo. Aquí está el contenido de mi archivo de composición.

Ejemplo de archivo de redacción de ventana acoplable

El archivo de redacción de la ventana acoplable anterior es un archivo mínimo para comprender el contenido básico dentro del archivo de redacción.

Podemos verificar la validez del archivo usando el comando:

# docker-compose config

Comprobar la validez del archivo de redacción de la ventana acoplable

Si proporciona una versión incorrecta dentro del archivo de composición de la ventana acoplable, aparecerá un mensaje de error.

Mensaje de error de redacción del archivo de Docker

Ahora ejecutemos el archivo de composición usando el comando:

# docker-compose up -d

Iniciará todos los servicios con un solo comando.

Ejecutar composición docker

Para enumerar los contenedores en ejecución creados por el archivo de redacción, ejecute:

# docker-compose ps

Lista de contenedores docker en ejecución

Podemos cerrar la aplicación en cualquier momento con el siguiente comando:

# docker-compose down

Detener contenedores docker

También podemos asignar un puerto diferente a nginx, por ejemplo 8181.

Para hacerlo, simplemente defina el puerto en el archivo de redacción como se muestra en la siguiente imagen.

Definir contenedor de puerto nginx

Ahora el nginx está expuesto al puerto 8181. Iniciemos el contenedor y verifiquemos si Nginx se está ejecutando en el puerto 8181.

Iniciar contenedor nginx

Abra el navegador y verifique si se está ejecutando en el puerto 8181.

Pruebe el contenedor nginx en el navegador web

Si desea escalar el servicio, puede hacerlo usando el comando:

# docker-compose up -d --scale database=3

Escale servicios usando docker compose

Para mostrar los servicios en ejecución, ejecute:

# docker-compose top

Mostrar servicios en ejecución usando docker compose

Para parar, empezar. reiniciar todo el servicio a la vez, los comandos serían:

# docker-compose stop
# docker-compose start
# docker-compose restart

Podemos ver los registros de los servicios usando el comando:

# docker-compose logs

Mostrar registros de servicios

Redes en docker-compose

Docker Compose configura una única red para su aplicación de forma predeterminada. Cada contenedor se une a la red predeterminada y los contenedores podrán comunicarse en esa red predeterminada.

Sin embargo, puede crear una nueva red usando componer si no desea la red predeterminada.

A los efectos de esta guía, utilizo los siguientes tres archivos:

  1. Dockerfile
  2. docker-compose.yml
  3. servidor.py

Aquí está el contenido de Dockerfile:

contenido del archivo docker

Contenido de docker-compose.yml:

Contenido del archivo de redacción de Docker

Contenido de server.py:

contenido del archivo de la aplicación

Ahora construye la imagen usando el comando:

# docker-compose build

Una vez que se complete la compilación, verá el siguiente resultado:

Crear imagen acoplable

Como puede ver, la imagen se construyó con éxito. Puede verificarlo usando el comando:

# docker images

Lista de imágenes acoplables

Como puede ver en el resultado anterior, una imagen de Docker llamada image1 se crea.

Ahora ejecute el archivo de redacción:

# docker-compose up -d

Ejecute el archivo de redacción de la ventana acoplable

Compruebe si la nueva red se crea o no con el comando:

# docker network ls

Comprobar la red acoplable

De la captura de pantalla anterior, podemos confirmar una nueva red llamada dc_network_my-network ha sido creado.

Verifiquemos si el contenedor se está ejecutando o no usando el comando "docker ps":

# docker ps

salida del comando docker ps

¡Sí, el contenedor se está ejecutando!

Finalmente ejecute el archivo de código de la aplicación (server.py) usando el comando curl:

# curl localhost:15001

O,

# curl 10.26.35.244:15001

salida de la aplicación

Estamos obteniendo resultados:¡Hola, mundo, del nodo 1! que está escrito en el archivo server.py. ¡Significa que funciona!

Lectura sugerida:

  • Explicación de los conceptos de red de Docker
  • Explicación de los volúmenes de Docker con ejemplos
  • Cómo actualizar automáticamente los contenedores de Docker en ejecución
  • ctop:una herramienta de supervisión de línea de comandos para contenedores de Linux
  • Portainer:la forma más sencilla de administrar Docker
  • PiCluster:una sencilla aplicación de gestión de Docker basada en web
  • Dockly:administrar contenedores Docker desde la terminal

Sobre el autor:

Dhruv Tiwari es un ingeniero de DevOps al que le encanta automatizar cosas, trabajar con Linux a escala y sueña con el día en que los sistemas sean lo suficientemente inteligentes como para no tener que iniciar sesión en una caja de Linux. Viaje de CI/CD desde el código fuente hasta la implementación del código y la producción.


Docker
  1. Introducción a los cortafuegos de Linux

  2. Primeros pasos con el comando tac de Linux

  3. Comenzando con PiFlash:Arrancando su Raspberry Pi en Linux

  4. Primeros pasos con PostgreSQL en Linux

  5. Primeros pasos con SSH en Linux

Primeros pasos con el sistema operativo Linux

Tutorial de Docker:Primeros pasos con Docker en Linux

Tutorial de Vagrant:Primeros pasos con Vagrant en Linux

Comenzando con VirtualBox en Linux – Parte 1

Primeros pasos con Flutter en el escritorio de Linux

Tutorial de introducción a Azure Docker