Comment configurer Centos 7 firewallD pour permettre aux conteneurs Docker un accès gratuit aux ports réseau de l'hôte?

32

J'ai docker installé sur CentOS 7 et j'utilise firewallD.

De l'intérieur de mon conteneur, aller à l'hôte (par défaut 172.17.42.1)

Avec pare-feu activé

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

avec arrêt du pare-feu

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

J'ai lu les documents sur firewalld et je ne les comprends pas complètement. Existe-t-il un moyen d'autoriser tout simplement dans un conteneur Docker (je suppose sur l'adaptateur Docker0) un accès illimité à l'hôte?

adapt-dev
la source

Réponses:

31

Peut-être mieux que la réponse précédente;

firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
firewall-cmd --reload
kjetildm
la source
6
Je pense que add-portc'est superflu. Si docker0est marqué comme approuvé, ce port sera autorisé de toute façon.
Matt Hughes
6
@MattHughes Cela a fonctionné pour moi sans add-port. Vous devez également redémarrer Docker .
rdupz
1
A fonctionné après le redémarrage de firewalld, pas docker
cybersoft
10

Ces commandes ont fait l'affaire:

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