Jak skonfigurować firewallD Centos 7, aby umożliwić kontenerom dokerów bezpłatny dostęp do portów sieciowych hosta?

32

Mam dokera zainstalowanego na CentOS 7 i korzystam z firewalla D.

Z wnętrza mojego kontenera idę do hosta (domyślnie 172.17.42.1)

Przy włączonej zaporze ogniowej

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

z zamknięciem zapory ogniowej

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

Przeczytałem dokumenty na firewalld i nie do końca je rozumiem. Czy istnieje sposób, aby po prostu zezwolić na wszystko w kontenerze dokera (chyba na adapterze dokera0) nieograniczony dostęp do hosta?

adapt-dev
źródło

Odpowiedzi:

31

Może lepiej niż wcześniejsza odpowiedź;

firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
firewall-cmd --reload
kjetildm
źródło
6
Uważam, że add-portjest to zbyteczne. Jeśli docker0zostanie oznaczony jako zaufany, port ten i tak zostanie przepuszczony.
Matt Hughes,
6
@MattHughes To działało dla mnie bez add-port. Musisz także zrestartować okno dokowane .
rdupz
1
Pracował po ponownym uruchomieniu firewalla, a nie
dokera
10

Te polecenia załatwiły sprawę:

firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
adapt-dev
źródło