gpt4 book ai didi

docker - 有没有办法使用 DNS 发现 docker 网络上的其他容器?

转载 作者:行者123 更新时间:2023-12-02 09:32:33 24 4
gpt4 key购买 nike

我希望能够从 docker 容器内获取在同一 docker 网络上运行的所有容器的列表。由于如果我有主机名,内置的 docker DNS 可以给我 IP 地址,所以它似乎应该能够给我一个主机名列表(也许 DNS 不能做到这一点,我不知道)。

我想到的获取容器列表的其他方法:

  • 将 docker 套接字绑定(bind)挂载到容器中并使用 docker ps 。就安全性而言,这不是一个好主意。
  • 使用--link,我相信它会将条目放入/etc/hosts中。然后我可以从那里读取它们,但这违背了目的,因为当我启动容器时我必须已经知道主机名。

我希望避免使用外部服务发现机制,但我希望获得有关如何获取容器列表的所有建议。

最佳答案

实现这一目标的一种简单方法是在主机中运行一个或多个 docker 命令,以循环获取所需的信息并将其存储在已知位置(例如 bash 中)

while true; do echo `docker ps --format {{.ID}}` > /SOME/KNOWN/FILE; sleep 5; done

然后让容器使用卷访问此文件。

它比提供对 docker 套接字的访问要安全得多,您可以改进它以提供您需要的所有信息(例如带有名称、IP、运行时间等的 json)。

关于docker - 有没有办法使用 DNS 发现 docker 网络上的其他容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com