Il y a trois endroits où docker va générer des sous-réseaux.
- Le pont par défaut
- Réseaux de ponts générés par les utilisateurs
- Réseaux superposés générés en mode essaim
Pour le pont par défaut (appelé "bridge"), vous pouvez spécifier BIP (je crois que c'est Bridge IP ; assurez-vous qu'il s'agit d'une IP hôte et non d'une IP réseau. ) dans le daemon.json
fichier. Et pour les réseaux de pont générés par l'utilisateur, vous pouvez définir un pool de sous-réseaux à choisir (en supposant que l'utilisateur ne spécifie pas manuellement un sous-réseau). Pour ces deux derniers, votre /etc/docker/daemon.json
ressemblerait :
{
"bip": "10.200.0.1/24",
"default-address-pools":[
{"base":"10.201.0.0/16","size":24},
{"base":"10.202.0.0/16","size":24}
]
}
Chaque paramètre de pool d'adresses ci-dessus définit une plage CIDR et la taille des sous-réseaux à allouer à partir de cette plage. Ainsi, les paramètres ci-dessus définissent deux plages de classe B qui sont allouées en tant que réseaux de classe C (/24). Vous avez besoin d'au moins 18.06 pour les pools d'adresses par défaut. Vous devrez recharger le démon Docker pour que ce changement soit appliqué ( systemctl reload docker
). Et ce changement ne modifiera que les réseaux d'utilisateurs nouvellement créés, vous devrez donc arrêter les conteneurs et supprimer les réseaux existants dans la mauvaise gamme.
Dans la version 18.09, Docker a ajouté la possibilité de spécifier la plage d'adresses pour les réseaux superposés générés en mode essaim. Pour l'instant, cela ne peut être fait qu'au moment de la création de l'essaim, mais nous espérons que cela sera mis à jour à l'avenir afin de permettre à l'utilisateur d'avoir accès à ces réseaux. docker swarm update
pour régler ces piscines :
$ docker swarm init \
--default-addr-pool 10.202.0.0/16 \
--default-addr-pool 10.203.0.0/16 \
--default-addr-pool-mask-length 24