我有几个码头集装箱运行如下:
因为 Nginx 需要连接到 web app 1和2中的 web 应用服务器,而 web 应用需要与 PostgreSQL 交谈,所以我有这样的链接:
一开始效果不错。然而,当我开发一个新版本的 Web 应用程序1和 Web 应用程序2时,我需要替换它们。我所做的就是移除 web 应用程序容器,设置新的容器并启动它们。
对于 web 应用程序容器,它们的 IP 地址一开始应该是这样的:
在我替换他们之后,他们会有新的 IP 地址:
现在,Nginx 容器中暴露的环境变量仍然指向旧的 IP 地址。问题来了。如何在不破坏容器之间连接的情况下更换容器?同样的问题也会发生在 PostgreSQL 上。如果我想升级 PostgreSQL 映像版本,我当然需要删除它并运行新的映像版本,但是我需要重新构建整个容器图,所以这对于实际的服务器操作来说并不理想。