我有一个现有的应用程序,包含在同一主机上运行的4个Docker容器。他们已经使用link
命令链接在一起。Docker链接容器,Docker Networks,Compose网络 - 我们应该如何“链接”容器
但是,在docker升级之后,link
的行为已被弃用,并且似乎已经改变。我们现在遇到问题,容器正在失去彼此的链接。
因此,码头说,使用新的Network
功能超过link
ed容器。但我看不到这是如何工作的。
如果2个容器在同一个网络中,是否相同ENV
变量会自动暴露在容器上,就好像它们已链接?
或者是用正确的容器名称/ IP地址更新主机文件?即使在docker restart
之后?
我无法在文档中看到容器如何在其网络中找到另一个容器的位置?
此外,compose
看起来有一个简单的链接容器的设置,并可能自动化一些 - 将构成定义多容器应用程序的方式?或者在生产中运行它还为时过早?
compose
是否也支持多主机配置?
在未来我们可能会需要移动容器到不同的主机之一的某一点....
真棒,谢谢你的详细解答。当我们转移到多主机设置时,我会再次审查撰写,但现在听起来好像主机文件是前进的方向...... –
您将如何发现容器暴露的端口?假设我有2个容器,a,它映射端口7474和b。 B可以通过'hosts'文件找到A - http:// a,但是有没有办法找到映射的端口?使用'link's你可以检查一个env var .... –
网络中没有端口转换。只有当您在Docker主机上_publish_容器端口时,端口才可以不同,而不仅仅是_expose_端口 – Thomasleveil