J'ai quelques dockers conteneurs en cours d'exécution comme
- Nginx
- Web app 1
- Web app 2
- PostgreSQL
Depuis Nginx doivent se connecte un serveur d'applications web à l'intérieur de web app 1 et 2, et les applications web besoin de parler à postgresql, j'ai donc des liens comme ceci
- Nginx --- lien ---> Web app 1
- Nginx --- lien ---> Web app 2
- Web app 1 --- lien ---> PostgreSQL
- Web app 2 --- lien ---> PostgreSQL
Cela fonctionne assez bien au début, cependant, quand je développe une nouvelle version de web app 1 et web app 2, j'ai besoin de les remplacer. Ce que je fais est de supprimer les conteneurs d'applications web, le programme d'installation de nouveaux conteneurs et de les démarrer.
Pour les conteneurs d'applications web, l'adresse IP à première serait quelque chose comme
- 172.17.0.2
- 172.17.0.3
Et après je les remplacer, ils ont de nouvelles adresses IP maintenant
- 172.17.0.5
- 172.17.0.6
En ce moment, ceux qui sont exposés les variables d'environnement dans Nginx conteneur sont encore pointés du vieux adresses IP. Ici vient le problème, comment faire pour remplacer un conteneur sans rupture de lien entre les autres conteneurs? Le même problème peut aussi se produire à PostgreSQL, si je veux mettre à jour PostgreSQL version de l'image, j'ai certainement besoin de l'enlever et exécuter la nouvelle, mais là j'ai besoin de reconstruire l'ensemble du conteneur graphique, ce n'est pas une bonne idée de la vie réelle de fonctionnement du serveur.