从主机查询Docker嵌入式DNS

K2J

有谁知道查询docker守护进程使用的嵌入式dns服务器的方法。我正在试验packetbeats,如果可以用容器名称替换docker ip地址,它将很有用。

我目前想到的唯一方法是在容器中创建dns服务器,该容器可以配置为主机的dns服务器,以确保主机可以解析容器名称。希望这有意义吗?

这是唯一的方法还是还有其他选择?

我尝试查询的容器是使用docker-compose创建的。

DevOps和

领事

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

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

DNS是Consul的主要查询接口之一。DNS界面允许应用程序使用服务发现,而无需与Consul进行任何高度集成。

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

对于您正在寻找的内容,这可能是过大的,但应该可以完成任务。

DNSMasq

一个更简单的替代方法可能是DNSMasq。我不太熟悉它,但是对于很小的规模设置,它将使您的主机可以DNS识别正在运行的容器。

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章