从主机查询dockerembedded的dns

有没有人知道一种方法来查询docker守护进程使用的embedded式DNS服务器。 我正在试验packetbeats,如果我可以用容器名称replacedocker的ip地址,这将是有用的。

我现在想到的唯一方法是在容器中创build一个dns服务器,该容器可以configuration为主机的dns服务器,以确保主机可以parsing容器名称。 希望有道理?

这是唯一的方式,还是有其他的select?

我试图查询的容器是使用docker-compose创build的。

领事

我喜欢使用Hashicorp的领事这个。 它可以作为安装的客户端或容器运行,并提供一个可以查询Docker外部的DNS接口 。 它还具有服务发现和监控等function,并且是开源的。

https://www.consul.io/docs/agent/dns.html

Consul的主要查询界面之一是DNS。 DNS接口允许应用程序利用服务发现,而无需与Consul高度整合。

例如,主机可以直接通过名称查找(如“redis.service.east-aws.consul”)使用DNS服务器,而不是向Consul发送HTTP API请求。 此查询自动转换为查找提供redis服务的节点,位于“east-aws”数据中心,并且没有失败的运行状况检查。 就这么简单!

这可能是你想要的东西矫枉过正,但应该做的工作。

的dnsmasq

一个更简单的select可能是DNSMasq。 我不太了解它,但是对于一个非常小规模的设置,它将允许您的主机了解正在运行的容器的DNS。

http://www.thekelleys.org.uk/dnsmasq/doc.html

https://hub.docker.com/r/andyshinn/dnsmasq/