Cela devrait être à quoi--link
ça sert , au moins pour la partie hostname.
Avec docker 1.10 et PR 19242 , ce serait:
docker network create --net-alias=[]: Add network-scoped alias for the container
(voir la dernière section ci-dessous)
C'est ce que la mise à jour des/etc/hosts
détails du fichier
En plus des variables d'environnement, Docker ajoute une entrée d'hôte pour le conteneur source au /etc/hosts
fichier.
Par exemple, lancez un serveur LDAP:
docker run -t --name openldap -d -p 389:389 larrycai/openldap
Et définissez une image pour tester ce serveur LDAP:
FROM ubuntu
RUN apt-get -y install ldap-utils
RUN touch /root/.bash_aliases
RUN echo "alias lds='ldapsearch -H ldap://internalopenldap -LL -b
ou=Users,dc=openstack,dc=org -D cn=admin,dc=openstack,dc=org -w
password'" > /root/.bash_aliases
ENTRYPOINT bash
Vous pouvez exposer le ' openldap
' conteneur en tant que ' internalopenldap
' dans l'image de test avec --link:
docker run -it --rm --name ldp --link openldap:internalopenldap ldaptest
Ensuite, si vous tapez 'lds', cet alias fonctionnera:
ldapsearch -H ldap://internalopenldap ...
Cela rendrait les gens. La signification internalopenldap
est correctement atteinte à partir de l' ldaptest
image.
Bien sûr, docker 1.7 ajoutera libnetwork
, qui fournit une implémentation Go native pour connecter des conteneurs. Voir le billet de blog .
Il a introduit une architecture plus complète, avec le Container Network Model (CNM)
Cela mettra à jour la CLI Docker avec de nouvelles commandes «réseau» et documentera comment l' -net
indicateur « » est utilisé pour attribuer des conteneurs aux réseaux.
docker 1.10 a une nouvelle section Alias à l'échelle du réseau , maintenant officiellement documentée dansnetwork connect
:
Alors que les liens fournissent une résolution de nom privé localisée dans un conteneur, l'alias de portée réseau permet à un conteneur d'être découvert par un autre nom par tout autre conteneur dans le cadre d'un réseau particulier.
Contrairement à l'alias de lien, qui est défini par le consommateur d'un service, l'alias de portée réseau est défini par le conteneur qui offre le service au réseau.
En continuant avec l'exemple ci-dessus, créez un autre conteneur isolated_nw
avec un alias réseau.
$ docker run --net=isolated_nw -itd --name=container6 -alias app busybox
8ebe6767c1e0361f27433090060b33200aac054a68476c3be87ef4005eb1df17
--alias=[]
Ajouter un alias de portée réseau pour le conteneur
Vous pouvez utiliser l' --link
option pour lier un autre conteneur avec un alias préféré
Vous pouvez suspendre, redémarrer et arrêter les conteneurs connectés à un réseau. Les conteneurs en pause restent connectés et peuvent être révélés par une inspection du réseau. Lorsque le conteneur est arrêté, il n'apparaît pas sur le réseau tant que vous ne le redémarrez pas.
Si spécifié, la ou les adresses IP du conteneur sont réappliquées lorsqu'un conteneur arrêté est redémarré. Si l'adresse IP n'est plus disponible, le conteneur ne démarre pas.
Une façon de garantir que l'adresse IP est disponible est de spécifier un --ip-range
lors de la création du réseau et de choisir la ou les adresses IP statiques hors de cette plage. Cela garantit que l'adresse IP n'est pas donnée à un autre conteneur tant que ce conteneur n'est pas sur le réseau.
$ docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 multi-host-network
$ docker network connect --ip 172.20.128.2 multi-host-network container2
$ docker network connect --link container1:c1 multi-host-network container2