J'ai trouvé une solution ici
Merci à Stéphane Graber.
Citation :
"Si vous exécutez un LXD moderne avec un pont géré par LXD, vous pouvez simplement définir la propriété ipv4.address sur l'interface réseau du conteneur.
- lxc stop c1
- connexion réseau lxc lxdbr0 c1 eth0 eth0
- Lxc config device set c1 eth0 ipv4.address 10.99.10.42
- lxc démarrer c1
"
Si vous souhaitez spécifier des adresses IP pour les conteneurs dans LXD, regardez le /etc/default/lxd-bridge
dossier. Vous y trouverez un emplacement pour inclure un fichier de configuration Dnsmasq externe.
En supposant que vous êtes sur Ubuntu 16.04,
Ouvrez /etc/default/lxd-bridge
dans votre éditeur préféré. Vous devrez utiliser sudo
.
Vers la ligne 16,
LXD_CONFILE=""
Ajoutez une entrée pointant vers un fichier de configuration dnsmasq. Vous allez devoir créer ce fichier. Alors nommez-le comme vous voulez. Quelque chose comme lxd_bridge.conf
.
Ensuite, créez et modifiez le fichier que vous avez nommé ci-dessus.
Ajoutez une ligne pour chaque conteneur auquel vous souhaitez attribuer une adresse IP spécifique.
Comme ceci :
dhcp-host=containername,ipaddress
Ensuite, vous devrez redémarrer lxd-bridge puis redémarrer les conteneurs.
Voici un article détaillé à ce sujet :
IP statiques LXD
Notez que si vous exécutez Alpine Linux dans vos conteneurs, des étapes supplémentaires doivent être suivies pour que cela fonctionne.alpine
Informations système :lxc-3.0.1
le Ubuntu Server 18.04.1
.
Après de nombreuses recherches, j'ai trouvé cette commande simple pour attribuer une adresse IP statique à un conteneur :
lxc config set [container] raw.lxc 'lxc.net.[i].ipv4.address = [ip]/[subnet-mask]'
où [container]
, [i]
, [ip]
et [subnet-mask]
sont le nom du conteneur, le numéro d'interface réseau, l'adresse IP statique souhaitée et le CIDR pour le masque de sous-réseau souhaité, respectivement.
Par exemple, si vous souhaitez attribuer 240.10.0.20
avec masque de sous-réseau 255.255.255.0
à la 0'ème interface réseau du conteneur nommé hello
, vous pouvez utiliser :
lxc config set hello raw.lxc 'lxc.net.0.ipv4.address = 240.10.0.20/24'
Vous devrez probablement redémarrer le conteneur après avoir exécuté la commande.
Notez que cela ne changera probablement pas l'adresse IP actuelle du conteneur (dans ma configuration en tout cas); le conteneur doit être accessible à la fois à son adresse IP d'origine et à la nouvelle adresse IP attribuée. Par conséquent, l'entrée de conteneur dans lxc list
peut contenir plusieurs adresses IP.
Jetez un oeil ici pour les clés de configuration acceptables annexées à lxc.net.[i]
. Cette page Web contient des informations sur la notation CIDR.
Malheureusement, je ne me souviens pas où j'ai trouvé cette solution pour la première fois. Voici un problème GitHub pertinent qui pourrait contenir des informations utiles.