Buscar..


Introducción

Empezando

Modo de puente Es un valor predeterminado y se adjunta al puente docker0. Coloque el contenedor en un espacio de nombres de red completamente separado.

Modo host Cuando el contenedor es solo un proceso que se ejecuta en un host, adjuntaremos el contenedor a la NIC del host.

Modo de contenedor asignado Este modo esencialmente mapea un nuevo contenedor en una pila de red de contenedores existente. También se le llama 'contenedor en modo contenedor'.

Ninguno Le dice a la ventana acoplable que coloque el contenedor en su propia pila de red sin configuración

Modo de puente, modo de host y modo de contenedor asignado

Modo Puente

$ docker run –d –-name my_app -p 10000:80 image_name

Tenga en cuenta que no tuvimos que especificar --net = bridge porque este es el modo de trabajo predeterminado para la ventana acoplable. Esto permite ejecutar múltiples contenedores para ejecutarse en el mismo host sin ninguna asignación de puerto dinámico. Por lo tanto, el modo BRIDGE evita el conflicto de puertos y es seguro ya que cada contenedor está ejecutando su propio espacio de nombres de red privada.

Modo host

$ docker run –d –-name my_app –net=host image_name

Como utiliza el espacio de nombres de la red del host, no es necesaria una configuración especial, pero puede provocar problemas de seguridad.

Modo de contenedor mapeado

Este modo esencialmente asigna un nuevo contenedor a una pila de red de contenedores existente. Esto implica que los recursos de red como la dirección IP y las asignaciones de puertos del primer contenedor serán compartidos por el segundo contenedor. Esto también se denomina modo 'contenedor en contenedor'. Supongamos que tiene dos atributos como web_container_1 y web_container_2 y ejecutaremos web_container_2 en el modo de contenedor asignado. Primero descarguemos web_container_1 y lo ejecutemos en modo separado con el siguiente comando,

$ docker run -d --name web1 -p 80:80 USERNAME/web_container_1

Una vez descargado, echemos un vistazo y asegurémonos de que está funcionando. Aquí simplemente asignamos un puerto a un contenedor que se ejecuta en el modo de puente predeterminado. Ahora, vamos a ejecutar un segundo contenedor en el modo de contenedor asignado. Lo haremos con este comando.

$ docker run -d --name web2 --net=container:web1 USERNAME/web_container_2

Ahora, si simplemente obtiene la información de la interfaz en ambos contaienrs, obtendrá la misma configuración de red. En realidad, esto incluye el modo HOST que se mapea con la información exacta del host. El primer contaienr se ejecutó en el modo de puente predeterminado y el segundo contenedor se está ejecutando en el modo de contenedor asignado. Podemos obtener resultados muy similares iniciando el primer contenedor en el modo host y el segundo contenedor en el modo contenedor asignado.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow