Vous êtes ici

Docker : Definir une adresse IP fixe à vos conteneurs

Nous avons vu dans un article précedent les bases de la virtualisation avec docker. Cependant si nous voulons utiliser docker pour un peu plus que du test d'application, nous allons avoir besoin de conteneurs avec une interface réseau correctement configurée.

Pour cela, nous allons faire appel à LXC.

1) Il faut installer LXC sur votre machine, ici pour ubuntu :

sudo apt-get install lxc

2) Maintenant, il faut executer docker avec la prise en charge de lxc, pour cela, nous allons modifier le fichier /etc/default/docker pour y ajouter la ligne :

DOCKER_OPTS="-d -e lxc"

Puis nous allons relancer le service docker : sudo service docker restart

3) Nous allons maintenant démarrer un conteneur en utilisant les parametres de configuration lxc :

sudo docker run --net="none" --lxc-conf="lxc.network.type = veth" --lxc-conf="lxc.network.ipv4 = 172.17.42.20/24" 
--lxc-conf="lxc.network.ipv4.gateway = 172.17.42.1" --lxc-conf="lxc.network.link = docker0" --lxc-conf="lxc.network.name = eth123" 
--lxc-conf="lxc.network.flags=up" -i -t ubuntu /bin/bash

 

Explication :

 

--net="none" : Cela signifie que docker ne doit pas configurer l'interface réseau

--lxc-conf="lxc.network.type = veth" : type d'interface réseau, ici virtuelle

--lxc-conf="lxc.network.ipv4 = 172.17.42.20/24" : ici la configuration ipv4 de la carte réseau de notre conteneur

--lxc-conf="lxc.network.ipv4.gateway = 172.17.42.1" : la passerelle par défaut de notre conteneur, j'utilise donc le réseau par défaut installé avec docker, vous pouvez bien évidement sur votre machine hôte configurer une autre carte réseau en mode bridge avec le réseau de votre choix

--lxc-conf="lxc.network.link=docker0" : c'est la carte réseau configurée en mode bridge sur la machine hôte

--lxc-conf="lxc.network.name=eth123" : nom que vous voulez donner à la carte réseau de votre conteneur

--lxc-conf="lxc.network.flags=up" : au démarrage du conteneur, la carte réseau sera en mode up

 

également possible :

--lxc-conf="lxc.network.hwaddr=[MAC ADRESSE]" : pour définir une adresse mac virtuelle

 

Voila, vous pouvez maintenant configurer vos conteneurs avec une adresse IP de votre choix. IP qui sera conservée à l'arrêt et au redémarrage de votre conteneur, contrairement à la configuration automatique.

 

www.le-gas.fr : Le guide de l'admin Systeme