Como configurar o Centos 7 firewallD para permitir que os contêineres do docker acessem livremente as portas de rede do host?

32

Eu tenho o docker instalado no CentOS 7 e estou executando o firewallD.

De dentro do meu contêiner, indo para o host (padrão 172.17.42.1)

Com o firewall ativado

container# nc -v  172.17.42.1  4243
nc: connect to 172.17.42.1 port 4243 (tcp) failed: No route to host

com desligamento do firewall

container# nc -v  172.17.42.1  4243
Connection to 172.17.42.1 4243 port [tcp/*] succeeded!

Eu li os documentos no firewalld e não os entendo completamente. Existe uma maneira de simplesmente permitir que tudo em um contêiner de docker (eu acho que no adaptador docker0) tenha acesso irrestrito ao host?

adapt-dev
fonte

Respostas:

31

Talvez seja melhor que a resposta anterior;

firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
firewall-cmd --reload
kjetildm
fonte
6
Eu acredito que add-porté supérfluo. Se docker0estiver marcado como confiável, essa porta será liberada de qualquer maneira.
Matt Hughes
6
@MattHughes Funcionou para mim sem o add-port. Você também precisa reiniciar a janela de encaixe .
Rdupz
1
Trabalhou após a reinicialização do firewalld, não do docker
cybersoft 14/04
10

Esses comandos fizeram o truque:

firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
adapt-dev
fonte