Network-Drivers-Host

Networking

Nota: Elimina el aislamiento de red entre el contenedor y el host de Docker, y use la red del host directamente.

Doker-Network-Host

Si usa el host modo de red para un contenedor, la pila de red de ese contenedor no está aislada del host de Docker (el contenedor comparte el espacio de nombres de red del host) y el contenedor no obtiene su propia dirección IP asignada. Por ejemplo, si ejecuta un contenedor que se une al puerto 8888 y utiliza la host red, la aplicación del contenedor está disponible en el puerto 8888 en la dirección IP del host.

Host: para Contenedores independientes, eliminando el aislamiento de red entre el Contenedor y el Docker Host, usando el mismo direccionamiento en ambos equipos. Es decir, ambos comparten la misma IP.

Nota : Dado que el contenedor no tiene su propia dirección IP al utilizar host redes modo, la asignación de puertos no entra en vigor, y el -p, –publish, -P, y la –publish-all opción se ignoran, produciendo una advertencia en su lugar: WARNING: Published ports are discarded when using host network mode

  1. -. La red en modo host puede ser útil para optimizar el rendimiento y en situaciones en las que un contenedor necesita manejar una gran variedad de puertos, ya que no requiere traducción de direcciones de red (NAT) y no se crea un «proxy de usuario» para cada puerto.
  2. -. El controlador de red del host solo funciona en hosts Linux y no es compatible con Docker Desktop para Mac, Docker Desktop para Windows o Docker EE para Windows Server.
  3. -. También puede utilizar una host red para un servicio de enjambre, pasando –network host al docker service create comando. En este caso, el tráfico de control (tráfico relacionado con la gestión del enjambre y el servicio) aún se envía a través de una red superpuesta, pero los contenedores de servicio de enjambre individuales envían datos utilizando la red y los puertos del host del demonio Docker. Esto crea algunas limitaciones adicionales. Por ejemplo, si un contenedor de servicios se une al puerto 80, solo un contenedor de servicios puede ejecutarse en un nodo de enjambre determinado.

Networking using the host network

Requisitos previos:

  • -. Este procedimiento requiere que el puerto 80 esté disponible en el host de Docker. Para hacer que Nginx escuche en un puerto diferente,
  • -. El host controlador de red solo funciona en hosts Linux y no es compatible con Docker Desktop para Mac, Docker Desktop para Windows o Docker EE para Windows Server.

Procedimiento:

1-. Cree e inicie el contenedor como un proceso independiente. La –rm opción significa retirar el contenedor una vez que sale / se detiene. La -d bandera significa iniciar el contenedor desprendido (in the background) .

  • In: root@juan-Aspire-ES1-512:/# docker run –rm -d –network host –name my_nginx nginx
  • Out: 58469444d94fa1b23b073cb75da63a38f18064dc2025c506cdf7ee331325e857

2-. Acceda a Nginx navegando a http: // localhost: 80 / .

3-. Examine su pila de red usando los siguientes comandos:

Examine todas las interfaces de red y verifique que no se haya creado una nueva.

  • In: root@juan-Aspire-ES1-512:/# ip addr show

4-. Verifique qué proceso está vinculado al puerto 80, usando el netstat comando.

  • In: root@juan-Aspire-ES1-512:/# netstat -tulpn | grep :80

5-. Detenga el contenedor. Se eliminará automáticamente cuando se inició con la –rm opción.

  • In: root@juan-Aspire-ES1-512:/# docker container stop my_nginx

 

Recopilando :

Estos apuntes de Networking en Dockers nos dan visión del conjunto de las Redes del ecosistema de Docker las cuales analizare una a una.

Referencias: (Docker)