36 lines
1.4 KiB
Markdown
36 lines
1.4 KiB
Markdown
|
\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 à
|
||
|
<https://docs.docker.com/userguide/dockerlinks/#environment-variables>.
|
||
|
|
||
|
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/articles/ambassador_pattern_linking/>.
|