J'ai créé deux réseaux Docker.
docker network create --subnet=172.18.0.0/16 Docker_network_1
docker network create --subnet=172.19.0.0/16 Docker_network_2
Sur chacun d'eux, je fais tourner deux conteneurs différents :
docker run --rm -it --name Container_1 --net Docker_network_1 alpine /bin/sh
docker run --rm -it --name Container_2 --net Docker_network_2 alpine /bin/sh
Container_1 a une IP 172.18.0.2
alors que le conteneur_2 a un IP 172.19.0.2
.
Depuis le Container_1, je peux ping
l'IP de l'interface du docker 172.19.0.1
qui appartient à Docker_network_2
mais je ne peux pas ping l'IP du Container_2 172.19.0.2
.
Je ne comprends pas pourquoi puisque le "routage" sur ma machine hôte semble correct :
#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 1024 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-ea28cf2d7108
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-244606ad6705
0 votes
Êtes-vous sûr que le conteneur_1 est sur le réseau Docker_2 ? D'après l'adresse IP, il semble être sur Docker_network_2.
0 votes
Merci, c'était une erreur de copier-coller. En effet, le conteneur_1 appartient au réseau Docker_network_1. Je ne suis toujours pas en mesure d'acheminer les paquets entre ces réseaux.
1 votes
Ne manipulez pas les règles Iptables de Docker, utilisez simplement la commande Docker appropriée pour relier les conteneurs entre eux, comme décrit ici, et Docker se chargera de la magie iptables pour vous. docs.docker.com/v1.5/articles/networking/
0 votes
Merci, Richard. Sur la base de la documentation à laquelle vous faites référence, pourriez-vous fournir un exemple dans les réponses ? L'objectif de l'exemple devrait être de permettre la communication entre le conteneur 1 et le conteneur 2 dans le scénario décrit dans la question.