Ejemplo básico de redes sobre cómo conectar contenedores Docker

Ejemplo básico de redes sobre cómo conectar contenedores Docker

Una de las muchas características deseables construidas directamente en Docker es la red. Se puede acceder a la función de red de Docker utilizando un --enlace FLAG que permite conectar cualquier cantidad de contenedores Docker sin la necesidad de exponer los puertos internos de un contenedor al mundo exterior.

En esta guía, aprenderá cómo contactar dos o más contenedores Docker en un sistema de Linux a través de instrucciones de línea de comandos. Esto funcionará en cualquier distribución de Linux. Consulte las instrucciones paso a paso a continuación para averiguar cómo.

En este tutorial aprenderás:

  • Cómo establecer contenedores de Docker en red
Vinculación de dos contenedores Docker juntos a través de la red en Linux Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Cualquier distribución de Linux
Software Estibador
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Conectando contenedores Docker a través de la red



  1. En esta configuración, aprenderá a vincular dos o más contenedores Docker juntos utilizando una técnica de red de Docker simple. Podemos comenzar por la implementación de nuestro primer contenedor Docker, nombrado sanbox1, A lo que luego crearemos un enlace de red:
    # Docker Run -it - -Name Sandbox1 -h Sanbox1 LinuxConfig/Sandbox/bin/Bash 

    No hay nada nuevo sobre el comando anterior, excepto para notar que no estamos exponiendo ningún puerto de red, aunque nuestra intención es acceder a los servicios (SSH, conexión de base de datos, etc.) a través de sus números de puerto relevantes.

  2. El siguiente comando de Linux implementará un segundo y esta vez un contenedor de Docker de padres nombrado sandbox2. También usaremos un --enlace FLAG que creará una relación de padres y hijos llamado con un contenedor previamente implementado sandbox1. Además, el --enlace La bandera permitirá que el contenedor principal acceda a cualquier servicio que se ejecute en sandbox1 contenedor a través de sus números de puertos correspondientes sin la necesidad del contenedor infantil de exponer cualquier puerto al mundo exterior.
    # docker run -it - -name sandbox2 -h sandbox2 --link sandbox1: sandbox1 linuxconfig/sandbox/bin/bash 

    El comando Docker anterior usó el --enlace bandera que espera dos argumentos separados por un colon. Se espera que el primer argumento sea una identificación de contenedor o como en nuestro caso un suministrado sandbox1 Nombre del contenedor al que nos gustaría vincular. El segundo argumento, también sandbox1, es un alias interno utilizado por sandbox2 resolver sandbox1Configuración de la red utilizando el /etc/huéspedes archivo de configuración:



    # GREP Sandbox1 /etc /Hosts 172.17.0.41 sandbox1 
  3. Dependiendo de la configuración de puertos de su contenedor de su hijo en uso, también puede extraer sandbox1Configuración de las variables de entorno del sistema. Por ejemplo:
    # env hostname = sandbox2 term = xterm sandbox1_port = tcp: // 172.17.0.37: 7555 sandbox1_port_7555_tcp = tcp: // 172.17.0.37: 7555 ruta =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin pwd =/sandbox1_port_7555_tcp_addr = 172.17.0.37 sandbox1_port_7555_tcp_proto = tcp shlvl = 1 home =/root sandbox1_name =/sandbox2/sandbox1 sandbox1_port_7555_tcp_port = 7555 _ =/usr/bin/env/env/envir/envir 
  4. De esta manera, simplemente podemos usar el alias de nuestro contenedor infantil para conectarse a él desde un contenedor principal sandbox2 Sin la necesidad de codificar su dirección IP:
    # ping -c 1 sandbox1 ping sandbox1 (172.17.0.41): 56 bytes de datos 64 bytes de 172.17.0.41: icmp_seq = 0 ttl = 64 time = 0.071 ms --- estadísticas de ping sandbox1 --- 1 paquetes transmitidos, 1 paquetes recibidos, 0% de pérdida de paquetes ida y vuelta min/avg/max/stddev = 0.071/0.071/0.071/0.000 ms 


    y también accede a cualquier puerto y servicios:

    # nmap -p 22 sandbox1 inicial nmap 6.47 (http: // nmap.org) en 2015-05-18 08:58 Informe de escaneo NMAP UTC para Sandbox1 (172.17.0.41) El host está arriba (0.Latencia de 000090). Port State Service 22/TCP Open SSH MAC Dirección: 02: 42: AC: 11: 00: 29 (Desconocido) NMAP HECHO: 1 DIRECCIÓN IP (1 Host) escaneada en 0.50 segundos 
Podemos comunicarnos desde el contenedor Sandbox1 hasta Sandbox2, como lo demuestra el comando ping

Eso es todo al respecto. Nuestros dos contenedores ahora pueden comunicarse entre sí y los servicios como SSH trabajan entre ellos. Puede aplicar esta misma configuración a cualquier dos o más contenedores Docker que necesite establecer contactos.

Pensamientos de cierre

En esta guía, vimos cómo vincular los contenedores Docker juntos en un sistema Linux. Esta es una tarea relativamente básica que se facilita a través de Docker --enlace opción. Tener la capacidad de contactar dos o más contenedores Docker juntos aumenta la potencia y la utilidad de Docker sustancialmente.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Cómo crear, administrar y exponer un servicio en Kubernetes
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cómo conectarse al contenedor Docker a través de SSH
  • Cómo crear una pila de lámparas basada en Docker usando Docker en ..
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Cómo configurar o cambiar la bandera de partición de arranque en Linux
  • Cómo mostrar/verificar los puertos abiertos en Ubuntu Linux
  • Cómo usar un archivo como clave de dispositivo Luks
  • Instale Arch Linux en VMware Workstation