virli/tutorial/1/linking.md
2017-09-22 10:27:48 +02:00

1.4 KiB

\newpage

Lier les conteneurs

En plus de vouloir partager des répertoires entre deux conteneurs, il est souvent nécessaire de partager des ports.

Pour automatiser le partage d'informations sur les IP et ports exposés, la commande run possède l'option --link qui permet de définir dans les variables d'environnement du conteneur que l'on va lancer.

Le détail des variables ajoutées dans cette situation est disponible dans la documentation de Docker.

On utilise généralement cette liaison pour fournir au conteneur hébergeant un site web dynamique l'IP et le port où trouver la base de données :

docker run -e MYSQL_ROOT_PASSWORD=mysecretpassword -d --name db1 mysql
docker run --link db1 my_nginx

Ambasador

Afin d'abstraire le plus possible l'infrastructure sous-jacente et d'autoriser les migrations de conteneurs, on utilise le modèle ambassador.

On lancera systématiquement un conteneur entre deux conteneurs que l'on veut lier : l'ambassadeur. Celui-ci s'occupera de router correctement le trafic. En cas de changement de route (si l'un des conteneurs change de machine hôte par exemple), on a simplement à redémarrer l'ambassadeur plutôt que le conteneur principal.

La documentation officielle pour ce modèle est disponible à https://docs.docker.com/engine/admin/ambassador_pattern_linking/.