Comment configurer les conteneurs Docker pour avoir des adresses IP uniques qui ne sont pas les adresses par défaut?

Comment configurer les conteneurs Docker pour avoir des adresses IP uniques qui ne sont pas les adresses par défaut?

Les conteneurs Docker exécuteront Apache ou un service Web. Ces conteneurs Docker partageront un hôte doté d'une carte réseau physique. Ces conteneurs doivent être identifiables par des adresses IP uniques avec des appels sur le port 80. Les posts de travail utiliseront HTTP pour download des files.

J'ai essayé de créer des adresses IP fictives sur l'hôte Docker. Mais cela a causé le networking au server pour tomber.

J'ai essayé d'installer Docker overlay, mais je ne pense pas que cela m'aidera à faire en sorte que les stations de travail utilisent les requêtes HTTP dans les conteneurs. La superposition des dockers semble être orientée vers la connectivité entre les conteneurs.

J'ai cherché à utiliser l'interlock, mais je préfère ne pas utiliser Swarm.

La solution la plus simple consiste à append des adresses supplémentaires à l'hôte, puis à lier un conteneur à chaque adresse. Par exemple, en supposant que votre hôte est 192.168.1.20, vous pouvez append des adresses supplémentaires comme ceci:

ip addr add 192.168.1.21/32 dev eth0 ip addr add 192.168.1.22/32 dev eth0 ip addr add 192.168.1.23/32 dev eth0 

Et puis, lors du démarrage d'un conteneur, publiez le port 80 dans le conteneur sur le port 80 sur une adresse hôte particulière, comme ceci:

 docker run -p 192.168.1.21:80:80 mywebimage 

(Ceci ne modifie pas l'adresse IP du conteneur, il crée une carte entre l'adresse IP et le port donnés, ainsi que l'adresse IP et le port internes du conteneur).

Notez que la configuration d'adresse indiquée ici ne sera pas persistante; si vous redémarrez votre hôte, vous perdrez les adresses. La façon dont vous configurez les adresses de ce type varie constamment d'une dissortingbution à l'autre; reportez-vous à votre documentation de dissortingbution pour plus de détails.