Changer les plages d’IP utilisées par Docker
Cette page indique la configuration à appliquer pour changer les plages d’IPs utilisées par Docker.
Par défaut, docker va utiliser les deux plages :
172.17.0.0/16
: Pour le networkbridge
(aussi appelédocker0
)172.18.0.0/16
: Pour le networkdocker_gwbridge
Si la procédure est suivie pendant l’installation de Cyberwatch, seules les étapes 3 et 4 sont nécessaires.
Stopper l’instance :
sudo cyberwatch stop
Déconnecter et supprimer le network
docker_gwbridge
docker network disconnect -f docker_gwbridge gateway_ingress-sbox docker network rm docker_gwbridge
Éditer le fichier
/etc/docker/daemon.json
:{ "bip": "10.0.1.1/24", "default-address-pools": [ { "base": "10.0.2.0/18", "size": 24 } ] }
Le champs
bip
(pour Bridge IP) défini la plage d’adresses IP accordée à l’interfacedocker0
. L’exemple lui affecte la plage10.0.1.1/24
. Attention à bien configurer la plage d’adresses avec le.1
final, sans quoi docker ne démarre pas.Le champs
default-address-pools
défini la plage d’adresses IP accordée à l’interfacedocker_gwbridge
. L’exemple lui affecte les adresses10.0.2.0/24
.Redémarrer docker :
sudo systemctl restart docker
Démarrer Cyberwatch :
sudo cyberwatch start
Vérifier les changements :
docker network inspect bridge | grep Subnet docker network inspect docker_gwbridge | grep Subnet
Troubleshooting
Problème potentiel détecté sur CentOS.
Avec la configuration proposée, il est possible que docker ne soit plus en mesure de redémarrer correctement sur le serveur Cyberwatch. La commande :
systemctl restart docker
peut alors échouer en expliquant qu’il a été impossible de créer le network docker_gwbridge
.
Il est possible de corriger ponctuellement cette erreur et de permettre à docker de redémarrer avec les commandes suivantes :
ip link add name docker0 type bridge
ip addr add dev docker0 10.10.0.1/16
Ce fix n’est que ponctuel et doit être appliquer à chaque redémarrage de docker.
Le problème peut être corrigé pour de bon dans la configuration en modifiant le fichier de configuration comme ceci :
cat > /etc/docker/daemon.json <<EOL
{
"bip": "10.0.1.1/24",
"default-address-pools": [
{ "base": "10.0.64.0/18", "size": 24 }
]
}
EOL
donnant ainsi une range d’IP plus importante à docker.
Sources :