Expondo a rede docker à rede local

2

Este é um problema que estou tentando resolver há algum tempo. Eu tentei tantos recursos quanto eu poderia tentar, mas nada ainda funcionou para mim. : /

Eis o que estou tentando resolver:
Eu quero ser capaz de implantar contêineres Docker e acessá-los de uma máquina que reside na mesma rede local. Isso significa que os endereços IP que o Docker distribui para os contêineres precisam estar acessíveis a partir de um computador cliente na mesma LAN que o computador que hospeda o Docker.

O ideal é que as pessoas precisem adicionar uma rota que aponte para o host do Docker como um gateway para a rede do Docker, como:

client@lan$ sudo route add -net <docker-network>/<mask> gw <docker-host>

E boom, eles podem acessar os contêineres apenas digitando seu IP. Esta rota também pode ser configurada a partir do roteador, é claro.

Eu vi que as pontes de rede ajudam a fazer isso, mas não consegui fazer com que uma delas funcionasse dessa maneira.

Como você faz tudo isso funcionar?

    
por iiPLD 11.05.2017 / 20:03

2 respostas

1

Se tudo o que você deseja fazer é garantir que os aplicativos nos contêineres do Docker sejam alcançados por outros hosts na rede, seria mais fácil definir o modo de rede do Docker como host:

docker run --net=host image/toRun:1.0

Isso exporá as portas na imagem no endereço IP do host (certifique-se de evitar colisões de portas)

    
por 11.05.2017 / 21:53
0

A adição de uma rota nos clientes para alcançar seus contêineres por meio do host deve funcionar, desde que você ative o encaminhamento IPv4 no host do Docker usando:

sysctl -w net.ipv4.ip_forward=1

Porém, esteja ciente das implicações de segurança, porque sem o firewall adequado, isso roteará o tráfego de qualquer interface para qualquer interface.

    
por 14.05.2017 / 21:06