我如何为所有docker集装箱提供dynamic主机名?

目前,我有一台机器,我开始运行docker图像。 我想要做的是通过基于容器名称的主机名来访问所有的容器。 所以,如果我有容器C1C2 ,并且mydocker.local服务器的主机是mydocker.local ,那么c1.mydocker.local将指向容器映像C1 ,如果我要运行C3 ,它将变为可用的C3.mydocker.local

docker-dns与我正在尝试做的似乎相似,但该项目还没有更新7个月,文件不足以让我运行。

这似乎是一个非常常见的用例,但我一直没有能够创build适当的谷歌查询魔术find任何东西。

您可以尝试docker-gen自动更新您的主机的hosts文件,或创build一个dns服务,如Dnsmasq

另外我发现了一个叫做dns-gen的docker镜像,它只是使用docker-gen和dnsmasq,可以解决你的问题。

如果容器彼此依赖,你应该使用显式链接。 这将更新容器内的etc hosts文件,为每个链接的容器添加IP。

如果你想要一些像Rancher这样的东西,它会给你一个完整的虚拟专用networking,其中每个容器都有自己的IP。 Rancher还支持为所有正在运行的容器维护DNS的服务。 使用牧场主的好处是,它也可以在多主机场景中运行。