Docker Compose 在 v2 中注入链接容器

2024-04-10

在 Docker Compose v1 中,/etc/hosts文件已使用链接的容器进行更新。例如。

$ cat /etc/hosts 
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2  redis redis_1 c381c79fb9c2 romantic_yonath
172.17.0.3  48d2ed7033a1

然而,在 v2 中,这是通过 DNS 完成的,因此不再有条目。我可以使用主机表来引导负载均衡器;与 一起使用时非常有用scale命令。

有没有什么方法可以在容器创建过程中注入这些?


Nginx 博客上有这篇文章使用 DNS 与 NGINX 和 NGINX Plus 进行服务发现 https://www.nginx.com/blog/dns-service-discovery-nginx-plus/.

NGINX 会缓存 DNS 记录,直到下次重新启动或配置重新加载为止,忽略记录的 TTL 值。

解释您所看到的情况,即重新启动容器后,您可以路由到新节点。

这部分在变量中设置域名有一个启动时缓存的解决方法的示例。

resolver 10.0.0.2 valid=10s;

server {
    location / {
        set $backend_servers backends.example.com;
        proxy_pass http://$backend_servers:8080;
    }
}

当您在 proxy_pass 指令中使用变量指定域名时,NGINX 将在域名的 TTL 过期时重新解析该域名。

这次讨论 https://github.com/docker/docker/issues/22652建议127.0.0.11将是容器内解析器的 IP。


我在本地使用此配置来确认缩放后反映了 DNS 更改,并且它似乎有效

resolver 127.0.0.11 valid=5s;

server {
    listen 80;
    location / {
        set $application_servers application;
        proxy_pass http://$application_servers:8080;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker Compose 在 v2 中注入链接容器 的相关文章

随机推荐

  • 反序列化函数(字节数组到 uint32 )

    编写反序列化函数将字节数组转换为 32 位无符号整数的最佳方法是什么 typedef unsigned long uint32 uint32 deserialize uint32 unsigned char buffer uint32 va
  • 无法播放从 Android 应用程序发送的 Firebase 存储中的音频

    我正在使用 firebase 存储从我的 Android 应用程序上传音频 然后在我的应用程序中下载和播放 音频文件已上传 但当我从 firebase 存储播放它时 它采用如下图所示的视频格式 并且不播放音频 我还将其元数据设置为音频 mp
  • 产品和报价项目之间的概念区别是什么

    涉及班级 Mage Sales Model Quote Item and 法师 目录 型号 产品 我通过监听事件 在购物车添加上 得到了它们 我正在尝试从外部来源更新产品的数量信息 到目前为止 我的代码仅基于产品信息 我不确定这是否正确 报
  • 如何使用 pandas 计算所有列之间的相关性并删除高度相关的列?

    我有一个巨大的数据集 在机器学习建模之前 总是建议您首先应该删除高度相关的描述符 列 我如何计算列wice相关性并删除具有阈值的列 例如删除所有列或描述符具有 gt 0 8 的相关性 它还应该保留减少数据中的标题 示例数据集 GA PN P
  • Web API 2 OData = $format 不起作用:请求始终被忽略

    我有一个 Web API OData 项目 一切都运行良好 我现在尝试使用 format 参数返回 xml 而不是 JSON 而不是指定标头请求 但它不起作用 我尝试过这些方法 http localhost 3845 api Custome
  • Google Apps 脚本用于计算昨天收到的具有特定标签的电子邮件数量,然后将 # 每天保存到电子表格

    基本上就是标题所说的 但我想 1 自动计算我的 Gmail 帐户收到的带有特定标签的电子邮件数量 2 每天数一次 即使是零 3 每天向 Google 电子表格报告 4 所以我可以制作这样的月度报告 日期 日期 日期 10 月总计 平均每天
  • Python Tkinter - 恢复原始默认键绑定

    我正在 Win7 机器上使用 Python 2 7 和 Tkinter GUI 在某些情况下 我想完全覆盖 Tab 键的正常默认行为 但前提是存在某些条件 之后我想恢复到默认行为 请注意 目前我对 Tab 键感兴趣 但在某些时候我可能也需要
  • 表格单元格背景渗透到圆角表格中

    正如可以看到的这个演示 http jsfiddle net ZFYvq 其中表格设置有圆角 特别是右上角和左下角 这些角会被其包含的单元格的背景颜色破坏 我尝试应用一些padding到桌子上 但这并没有帮助 我唯一的选择是添加额外的列和行并
  • 树视图 - 突出显示多个项目

    在 Powerbuilder 中 这里有人知道我如何在树视图上突出显示多个项目吗 Selecteditem 函数没有这样做 我正在寻找 Selectedrow id 正在做的行为 Thanks 我自己没有尝试过 但有一个例子代码交换 htt
  • 使用带有 1 字节变量的 Python struct.unpack

    我该如何使用struct unpack 或 Python 中可用的其他一些函数可以轻松转换one字节变量到Python整数 现在 它是以一种相当蹩脚的方式完成的 file open telemetry dat rb read magic f
  • 对数字字符串映射的字符串进行排序

    我们有一个关于字符串排序的问题 在这种情况下排序不起作用 1 A 1 B 10 A 10 B 9 A 9 B 我们真正想要的是 1 A 1 B 9 A 9 B 10 A 10 B 如果我们将其作为字符串排序 结果将类似于第一部分 如果我们先
  • 在java中旋转图像

    我正在寻找旋转图像 我有一个JInternalFrame其中包含一个JLabel 标签包含图像 旋转图像后 我需要调整内部框架的大小 我当前的代码旋转图像 但图像边缘周围有黑色并且偏离中心 对于如何解决这个问题 有任何的建议吗 public
  • 使用expect进行无人值守(无提示)Homebrew安装

    根据Homebrew安装说明 可以使用以下命令进行安装 ruby e curl fsSL https raw github com Homebrew homebrew go install 这可行 但需要用户输入两次 确认安装并在脚本调用的
  • 在 Ruby 中生成 Paypal 签名“X-PAYPAL-AUTHORIZATION”

    Ruby 中是否有任何库可以生成签名 X PAYPAL AUTHORIZATION 代表通过 paypal Permissions API 授权我们的账户持有人进行调用时需要的标头 我完成了权限流程并获取了所需的访问令牌 tokenSecr
  • 在 Oracle SQL 中从当前日期减去 30 年

    我需要编写一个查询 选择所有出生日期在 30 年前的人 不幸的是 由于我使用的是 Oracle 所以我无法使用DATEADD 功能 我目前已经得到了这个 但显然这不是动态的 并且不会随着时间的推移而改变 SELECT Name DOB FR
  • 无法修改 Dictionary 的返回值,因为它不是变量

    有这样的错误 无法修改 System Collections Generic Dictionary this string 的返回值 因为它不是变量 My code Dictionary
  • Mysql 的 Doctrine 查询

    我想创建一个 Doctrine 查询 Doctrine 2 3 SELECT FROM car WHERE plate like AND datetime BETWEEN 2013 03 13 22 20 18 AND 2013 03 13
  • Ruby 进程之间的共享变量

    我有一个 Ruby 程序 可以加载两个非常大的 yaml 文件 因此我可以通过分叉一些进程来利用多核来提高速度 我尝试过寻找 但我无法弄清楚如何或是否可以在不同的进程中共享变量 以下代码是我目前拥有的 proteins decoyProte
  • 在 Moq 中模拟通用方法而不指定 T

    我有一个接口 其方法如下 public interface IRepo IA
  • Docker Compose 在 v2 中注入链接容器

    在 Docker Compose v1 中 etc hosts文件已使用链接的容器进行更新 例如 cat etc hosts 127 0 0 1 localhost 1 localhost ip6 localhost ip6 loopbac