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/.