Wie konfiguriere ich Centos 7 firewallD so, dass Docker-Container freien Zugriff auf die Netzwerkports des Hosts haben?

32

Ich habe Docker auf CentOS 7 installiert und verwende eine Firewall.

In meinem Container zum Host gehen (Standard 172.17.42.1)

Mit aktivierter Firewall

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

mit Firewall-Abschaltung

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

Ich habe die Dokumentation zu firewalld gelesen und verstehe sie nicht vollständig. Gibt es eine Möglichkeit, einfach alles in einem Docker-Container (ich denke auf dem Docker0-Adapter) uneingeschränkten Zugriff auf den Host zu ermöglichen?

adapt-dev
quelle

Antworten:

30

Vielleicht besser als frühere Antwort;

firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
firewall-cmd --reload
kjetildm
quelle
6
Ich halte das add-portfür überflüssig. Wenn docker0als vertrauenswürdig markiert ist, wird dieser Port trotzdem durchgelassen.
Matt Hughes
6
@MattHughes Es hat bei mir ohne das geklappt add-port. Sie müssen docker auch neu starten .
Rdupz
1
Arbeitete nach dem Neustart der Firewall, nicht Docker
Cybersoft
10

Diese Befehle haben es geschafft:

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