首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何刷新docker-compose external_links dns

如何刷新docker-compose external_links dns
EN

Stack Overflow用户
提问于 2019-05-15 17:46:50
回答 1查看 392关注 0票数 0

我在三个docker-compose文件中定义了服务。一个包含服务,另外两个是我的应用程序的蓝色和绿色实例。

所有服务共享相同的外部网络,并且使用external_links在组成文件之间公开服务

有时,当在蓝色和绿色之间切换时,IP会发生变化,我需要重新启动服务以更新服务容器上的IP。

有没有办法动态更新docker链接,这样我就不必重新启动我的nginx容器,造成一段时间的不可用?

EN

回答 1

Stack Overflow用户

发布于 2019-05-15 20:54:24

链接是一种错误的方式。链接通过修改容器的主机文件来工作,但该修改不会随着目标容器的替换而更新。由于类似这样的各种问题,它们在很大程度上已被弃用。

从您的撰写文件中删除链接,并将容器放在一个普通用户创建的网络上(即,不是几个默认docker提供的网络中的一个)。compose将为您的服务提供用户创建的网络(您可以使用docker network ls看到的名为${project}_default的默认网络),或者您可以在连接来自多个项目的容器时指定外部网络。

对于共享网络,docker将根据容器名称和任何网络别名为您提供DNS解析。使用docker-compose,您将为服务名称配置开箱即用的网络别名。因此,如果您有一个名为"web“的服务,您可以运行curl http://web:8080来访问该"web”服务的任何副本上的8080端口。如果您转换到群模式,这种用户体验是相同的,尽管它是使用VIP实现的,而不是DNS-RR,后者在滚动更新期间处理缓存的DNS条目等问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56146328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档