blog.bressure.net

Carnet professionnel d'un informaticien

Paramétrage

Docker impossible de créer un réseau, plus de plage IPv4 disponible

admin

Il m’est arrivé une mauvaise aventure ce jour en voulant ajouter un n-ième conteneur sur mon hôte docker. Je commence à en avoir quelque dizaines. Comme maintenant Traefik me permet d’en ajouter sans me soucier des problèmes de port, je ne me prive pas.

Creating network "staging_selenium_default" with the default driver

could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

L’erreur était l’impossibilité de créer le réseau bridge par défaut parce qu’il n’y avait plus de plage IPv4 disponible. En effet pour chaque réseau bridge créé pour un projet docker-compose, docker définit un masque de sous-réseau assez généreux, voir trop. Ainsi les réseau 172.17-31.0.0/16 (soit 65000 adresses) et 192.168.0.0/20 (soit 4000 adresses) sont utilisées pour le réseau bridge. Le gestionnaire de réseau n’arrivait plus à trouver un masque disponible pour ma nouvelle application.

Une modification du fichier /etc/docker/daemon.json permet de modifier le masque de sous-réseau utilisé et ainsi économiser des adresse IPv4. En effet dans mon cas mes fichiers docker-compose.yml n’assemblent que quelques conteneur donc je n’ai pas besoin d’autant d’adresses par sous-réseau !

{
 "default-address-pools":
  [
    {"base":"192.168.0.0/16","size":24}
  ]
}

Le paramètre size 24 permet de n’utiliser que le dernier octet par sous-réseau soit 256 adresses. Ceci est amplement suffisant pour mon besoin.

Tags:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Back to top