是否有办法使用DNS发现docker网络上的其他容器?
我希望能够从docker容器中获取在同一docker网络上运行的所有容器的列表。由于内置的docker DNS可以给我IP地址,如果我有主机名,它似乎应该能够给我一个主机名列表(也许DNS不能做到这一点,我不知道) 我想到的获取容器列表的其他方法:是否有办法使用DNS发现docker网络上的其他容器?,docker,dns,service-discovery,Docker,Dns,Service Discovery,我希望能够从docker容器中获取在同一docker网络上运行的所有容器的列表。由于内置的docker DNS可以给我IP地址,如果我有主机名,它似乎应该能够给我一个主机名列表(也许DNS不能做到这一点,我不知道) 我想到的获取容器列表的其他方法: 绑定将docker套接字安装到容器中,并使用docker ps。就安全而言,这不是个好主意 使用--link,我相信它会将条目放在/etc/hosts中。然后我可以从那里读到它们,但这样做并没有达到目的,因为在启动容器时,我必须已经知道主机名 我
- 绑定将docker套接字安装到容器中,并使用
。就安全而言,这不是个好主意docker ps
- 使用
,我相信它会将条目放在--link
中。然后我可以从那里读到它们,但这样做并没有达到目的,因为在启动容器时,我必须已经知道主机名/etc/hosts
我希望避免使用外部服务发现机制,但对于如何获取容器列表的所有建议,我将不胜感激。实现这一点的简单方法是在主机中运行一个或多个docker命令,以在循环中获取所需信息并将其存储在已知位置(例如在bash中) 然后让容器使用卷访问此文件
它比提供对docker套接字的访问安全得多,您可以改进它以提供所需的所有信息(例如带有名称、ip、运行时间等的json)。如果您想限制轮询,这里可能也很有用。嗯,我明白了。不是我想要的答案,而是一个聪明的解决方案。
while true; do echo `docker ps --format {{.ID}}` > /SOME/KNOWN/FILE; sleep 5; done