有没有人知道查询docker守护程序使用的嵌入式DNS服务器的方法.我正在尝试使用packetbeats,如果我可以用容器名称替换docker ip地址,那将会非常有用.
我目前可以想到的唯一方法是在容器中创建一个dns服务器,可以将其配置为主机的dns服务器,以确保主机可以解析容器名称.希望有道理吗?
这是唯一的方式还是有其他选择?
我正在尝试查询的容器是使用docker-compose创建的.
我喜欢使用Hashicorp的领事.它可以作为已安装的客户端或容器运行,并提供可以在Docker外部查询的DNS接口.它还具有服务发现和功能等功能.监控,是开源的.
https://www.consul.io/docs/agent/dns.html
One of the primary query interfaces for Consul is DNS. The DNS interface allows applications to make use of service discovery without any high-touch integration with Consul.
For example,instead of making HTTP API requests to Consul,a host can use the DNS server directly via name lookups like “redis.service.east-aws.consul”. This query automatically translates to a lookup of nodes that provide the redis service,are located in the “east-aws” datacenter,and have no failing health checks. It’s that simple!
对于你正在寻找的东西来说可能有点过头了,但应该做好这件事.
的dnsmasq
一个更简单的替代方案可能是DNSMasq.我对它不熟悉,但对于非常小的设置,它将允许您的主机知道运行容器的DNS.