Cada vez que exponemos el puerto de un contenedor en la ventana acoplable, crea una ruta de red desde el exterior de esa máquina, a través de la capa de red, y entra en ese contenedor. De esta manera, otros contenedores pueden conectarse a él saliendo al host, dando la vuelta y volviendo por ese camino.
Docker ofrece un amplio conjunto de opciones de red para controlar exactamente cómo se conectan sus contenedores entre sí y asegurarse de que sea seguro y de la forma que usted desea.
Antes de sumergirnos en este artículo, le recomendaría que revise los conceptos básicos de Docker y las redes informáticas para obtener una imagen más clara de lo que sucede exactamente detrás de escena.
Comunicación de Contenedores:
A pesar del aislamiento, los contenedores frecuentemente necesitan interactuar entre sí e incluso con el mundo exterior. Este procesamiento de interacción se puede lograr mediante la creación de redes entre contenedores. Básicamente implica que una aplicación en un contenedor establecerá una conexión de red a través de un puerto en otro contenedor. En este artículo, aprenderemos los conceptos básicos para vincular contenedores y hacer que se comuniquen entre sí. Ejecutaremos ubuntu en dos contenedores diferentes, definiremos un número de puerto y dejaremos que se comuniquen a través de una red.
Abre la terminal.
Primero echemos un vistazo a las redes existentes y veamos qué hay de forma predeterminada.
docker network ls
Podemos ver que hay 3 redes presentes por defecto:
- Bridge es la red utilizada por los contenedores y no especifican la preferencia para colocarse en ninguna otra red. Esto significa que una red de puente le brinda una comunicación muy básica entre contenedores en el mismo host.
- Host es cuando no desea que los contenedores tengan ningún aislamiento de red. Esto implica que esta red puede tener problemas de seguridad.
- Ninguno es cuando su contenedor no puede tener redes.
Cree su propia red con el siguiente comando:
docker network create learn-networking
De esta manera, hemos creado una red llamada learn-networking . Puede dar a la red el nombre que desee. Ahora conectaremos nuestros contenedores a través de esta red.
Abra dos terminales uno al lado del otro. En una de las terminales, escriba el siguiente comando para crear un nuevo contenedor llamado conatiner1 en la red learn-networking.
docker run --rm -ti --net learn-networking --name container1 ubuntu:14.04 bash
Aquí:
- Comandos –rm para eliminar el contenedor tan pronto como lo detengamos.
- -ti significa terminal interactiva.
- –net se utiliza para establecer la red del contenedor.
- — nombre se utiliza para especificar el nombre del contenedor. Aquí el nombre del contenedor es contenedor1 .
Ahora, en la otra terminal, cree un nuevo contenedor llamado container2 en la misma red learn-networking .
docker run --rm -ti --net learn-networking --name container2 ubuntu:14.04 bash
Ahora tenemos dos contenedores en ejecución, container1 y container2 .
Además, si abre Docker Desktop y va a la sección Contenedores, verá dos contenedores que acabamos de crear en ejecución.
Ahora especificaremos un número de puerto que el contenedor2 escuchará. Entonces, para esto, la terminal donde se ejecuta container2 , escribe el comando
nc -lp 1234
Este comando dice, puerto de escucha netcat 1234 . Puede especificar cualquier número de puerto aquí.
En la terminal donde se ejecuta container1 , conéctelo a container2 a través del puerto 1234 escribiendo el siguiente comando
nc container2 1234
Después de esto, ambos contenedores se conectan a través del número de puerto 1234 en la red de aprendizaje en red.
Escriba cualquier cosa en la terminal 1 y se replicará en la terminal 2. Esto significa que se ha iniciado el intercambio de datos entre dos contenedores a través de una red.
Nota: Para compartir datos y hacer que los contenedores se comuniquen entre sí, deben estar en la misma red.
Publicación traducida automáticamente
Artículo escrito por itsnitish22 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA