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?

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.