【问题标题】:Docker network show DNS entriesDocker 网络显示 DNS 条目
【发布时间】:2020-07-13 09:27:55
【问题描述】:

我正在尝试在 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。 还尝试启动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  

但我想列出 dockerd 网络的运行时 dns 条目,其 dns 地址为 127.0.0.11。有可能吗?

【问题讨论】:

    标签: docker dns


    【解决方案1】:

    可以,但是你必须解析docker network inspect打印的JSON。

    运行docker network ls 获取正在运行的网络名称,然后运行docker network inspect NETWORK_NAME 以查看其中的容器。

    在 JSON 中查找“Containers”关键字,它是已连接设备的列表。查找具有 "IPv4Address": "127.0.0.11/24" 条目的实例,“名称”键是 DNS 名称。

    I.E. 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 中的网络名称匹配的网络名称空间,这样您就可以确保它们是唯一的,并根据以下规则将您的服务配置为使用 DNS 名称相互通信NETWORK-NAME_SERVICE-NAME.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      相关资源
      最近更新 更多