docker - Docker网络显示DNS条目

标签 docker dns

我正在尝试在ubuntu linux docker上调试容器dns解决问题。如此处所述https://docs.docker.com/config/containers/container-networking/#dns-services docker使用容器内的嵌入式DNS服务器。是否有列出Docker嵌入式DNS服务器条目的命令? (例如/etc/resolv.conf中的条目)
我尝试了docker inspectdocker network inspect
还尝试以 Debug模式启动dockerd,但未发现任何有用的方法。
它确实显示了一些配置文件,如下所示。

INFO[2020-07-13T14:39:58.517777580+05:45] detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf  
但是我想列出dns地址dockerd127.0.0.11网络的运行时dns条目。可能吗 ?

最佳答案

可能,但是您必须解析docker network inspect打印的JSON。
运行docker network ls以获取正在运行的网络名称,然后运行docker network inspect NETWORK_NAME以查看其中的容器。
在JSON中查找“Containers”关键字,它是已连接设备的列表。查找带有"IPv4Address": "127.0.0.11/24"条目的实例,“名称”键是DNS名称。
IE。 countly_countly-endpoint是解析为ip 10.0.8.4/24的DNS名称:

           "lb-countly_countly": {
                "Name": "countly_countly-endpoint",
                "EndpointID": "9f7abf354b5fbeed0be6483b53516641f6c6bbd37ab991544423f5aeb8bdb771",
                "MacAddress": "02:42:0a:00:08:04",
                "IPv4Address": "10.0.8.4/24",
                "IPv6Address": ""
            }
请注意,countly_是与docker network ls中的网络名称匹配的网络 namespace ,这样,您可以确保它们是唯一的,并根据NETWORK-NAME_SERVICE-NAME的规则将服务配置为使用DNS名称相互通信。

关于docker - Docker网络显示DNS条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62872963/

相关文章:

dns - 使用云存储桶静态站点将 www 重定向到非 www

python - 在Mac上退出Docker状态(127)

dns - 了解 DNSCrypt 代理解析器 URL

linux - DNS A记录和PTR记录删除

Docker:清理所有停止的容器,除了数据容器

ios - 域名中的表情符号 - iOS chrome 中的奇怪行为

ssl - 共享 SSL 证书作为子域

angular - 从docker ui容器调用到api容器

node.js - docker with mode 和 mongo 使用大量磁盘空间

docker - 如何在 Alpine Docker上安装有效的Perl Cassandra客户端