¿Cómo configurar Centos 7 firewallD para permitir que los contenedores Docker tengan acceso libre a los puertos de red del host?

32

Tengo docker instalado en CentOS 7 y estoy ejecutando firewallD.

Desde el interior de mi contenedor, yendo al host (predeterminado 172.17.42.1)

Con el firewall activado

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

con apagado del cortafuegos

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

He leído los documentos sobre Firewalld y no los entiendo completamente. ¿Hay alguna manera de simplemente permitir que todo en un contenedor acoplable (supongo que en el adaptador docker0) tenga acceso ilimitado al host?

adapt-dev
fuente

Respuestas:

31

Quizás mejor que la respuesta anterior;

firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
firewall-cmd --reload
kjetildm
fuente
66
Creo que add-portes superfluo. Si docker0se marca como confiable, ese puerto se dejará pasar de todos modos.
Matt Hughes
66
@MattHughes Me funcionó sin el add-port. También debe reiniciar la ventana acoplable .
rdupz
1
Trabajó después de reiniciar Firewalld, no
Docker
10

Estos comandos hicieron el truco:

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