Armoire à linge: comment choisir le meilleur en 2020?
29 septembre 2020
Meilleures voitures électriques pour enfants – Top 10 Ultimate Reviews
29 septembre 2020

Logo Docker

Si vous travaillez en réseau avec le monde extérieur, Docker se comporte comme si la requête provenait de la machine hôte. Mais si vous souhaitez accéder aux processus en cours d'exécution sur l'hôte, votre pare-feu peut nécessiter une configuration supplémentaire.

La solution: ajouter une règle de pare-feu pour 172.18.0.0/16

Si vous venez d'essayer d'accéder à un processus en cours d'exécution sur la machine hôte, comme un service HTTP, vous avez peut-être été bloqué. En effet, même si les conteneurs Docker fonctionnent sur l'hôte, ils utilisent un réseau spécial sous le capot pour les garder séparés de manière logique, et à cause de cela, ils ont des adresses IP différentes.

Vous pouvez le voir lors de l'exécution ifconfig, vous verrez votre interface réseau standard, mais aussi le docker0 interface. Par défaut, Docker utilise le bloc 172.18.0.0/16 pour allouer les adresses IP des conteneurs.

L'interface docker0

Le correctif est très simple: ouvrez cette plage de ports dans votre pare-feu. Les demandes provenant de la plage IP utilisée par Docker sont probablement bloquées. Il s’agit d’une plage d’adresses IP privées. Le risque d’être ouvert est donc minime. Pour UFW, ce serait:

sudo ufw autorise à partir de 172.18.0.0/24

Spécifier éventuellement un port à ouvrir:

sudo ufw autorise de 172.18.0.0/24 à n'importe quel port 9200

Pour iptables, ce serait:

iptables --append INPUT --protocol tcp --src 172.18.0.0/24 --jump DROP

Pour les services d'hébergement gérés comme AWS, vous n'aurez peut-être pas besoin de changer quoi que ce soit: les groupes de sécurité sont des pare-feu réseau qui se trouvent devant les instances et ne devraient pas affecter le trafic interne.

//]]>