Как настроить межсетевой экран 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) неограниченный доступ к хосту?

Ответы:


31

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

firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
firewall-cmd --reload

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.