Ejemplo básico de redes sobre cómo conectar contenedores Docker
- 2063
- 47
- Sta. Enrique Santiago
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
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 dominiops - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado |
Conectando contenedores Docker a través de la red
- 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.
- 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 implementadosandbox1
. Además, el--enlace
La bandera permitirá que el contenedor principal acceda a cualquier servicio que se ejecute ensandbox1
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 suministradosandbox1
Nombre del contenedor al que nos gustaría vincular. El segundo argumento, tambiénsandbox1
, es un alias interno utilizado porsandbox2
resolversandbox1
Configuración de la red utilizando el/etc/huéspedes
archivo de configuración:
# GREP Sandbox1 /etc /Hosts 172.17.0.41 sandbox1
- Dependiendo de la configuración de puertos de su contenedor de su hijo en uso, también puede extraer
sandbox1
Configuració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
- 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
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
- « Cómo eliminar todos los contenedores Docker usando un solo comando
- Eliminar líneas duplicadas de un archivo de texto utilizando la línea de comandos de Linux »