Как настроить межсетевой экран Centos 7, чтобы разрешить док-контейнерам свободный доступ к сетевым портам хоста?

32

У меня установлен докер на CentOS 7, и я использую firewallD.

Из моего контейнера, идущего к хосту (по умолчанию 172.17.42.1)

С включенным брандмауэром

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

с отключением брандмауэра

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

Я прочитал документы по Firewalld, и я не до конца их понимаю. Есть ли способ просто разрешить всем в контейнере докера (я думаю, на адаптере docker0) неограниченный доступ к хосту?

адаптируются-DEV
источник

Ответы:

31

Может быть, лучше, чем предыдущий ответ;

firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
firewall-cmd --reload
kjetildm
источник
6
Я считаю, что add-portэто лишнее. Если docker0помечен как доверенный, этот порт будет пропущен в любом случае.
Мэтт Хьюз
6
@MattHughes Это работало для меня без add-port. Вам также нужно перезапустить докер .
rdupz
1
Работал после перезапуска firewalld, а не докера
cybersoft
10

Эти команды сделали свое дело:

firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
адаптируются-DEV
источник