的效果
--link是静态的,因此它不适用于您的情况(尽管可以删除链接,但目前没有重新链接)。
我们在dockerize.it上使用了两种不同的方法来解决此问题,而没有链接或大使(尽管您也可以添加大使)。
1)使用动态DNS
通常的想法是,在启动和停止容器时,为数据库(或任何其他服务)指定一个名称,并使用实际IP更新短暂的DNS服务器。
我们从SkyDock开始。它与两个docker容器,DNS服务器和一个使其自动更新的监视器一起使用。后来,我们使用Consul(还使用了dockerized版本:docker
-consul)转向了更多自定义项。
这种情况的演变(我们尚未尝试过)将设置etcd或类似的东西,并使用其自定义API来学习IP和端口。该软件也应该支持动态重配置。
2)使用docker bridge ip
公开容器端口时,您可以将它们绑定到
docker0网桥,该网桥具有(或可以具有)众所周知的地址。
用新版本替换容器时,只需使新容器在相同IP上发布相同端口即可。
这比较简单,但也有更多限制。如果您运行类似的软件,您可能会遇到端口冲突(例如,两个容器无法在
docker0网桥上的3306端口上侦听)等问题,因此我们目前最喜欢的是选项1。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)