我正在尝试在 ubuntu linux docker 上调试容器 dns 解决问题。如此处所述https://docs.docker.com/config/containers/container-networking/#dns-services docker 使用容器内的嵌入式 DNS 服务器。是否有任何命令列出 Docker 的嵌入式 DNS 服务器条目?(就像 中的条目/etc/resolv.conf
)我已经尝试过docker inspect
并且docker 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
Run Code Online (Sandbox Code Playgroud)
但我想dockerd
用 dns 地址列出网络的运行时 dns 条目127.0.0.11
。是否可以 ?
Jea*_*raz 13
这是可能的,但你必须解析 打印的 JSON docker network inspect
。
运行docker network ls
以获取正在运行的网络名称,然后docker network inspect NETWORK_NAME
查看其中的容器。
在 JSON 中查找“Containers”关键字,它是已连接设备的列表。查找具有该条目的实例"IPv4Address": "127.0.0.11/24"
,“Name”键是 DNS 名称。
IEcountly_countly-endpoint
是解析为 ip 的 DNS 名称10.0.8.4/24
:
"lb-countly_countly": {
"Name": "countly_countly-endpoint",
"EndpointID": "9f7abf354b5fbeed0be6483b53516641f6c6bbd37ab991544423f5aeb8bdb771",
"MacAddress": "02:42:0a:00:08:04",
"IPv4Address": "10.0.8.4/24",
"IPv6Address": ""
}
Run Code Online (Sandbox Code Playgroud)
请注意,这countly_
是与网络名称相匹配的网络命名空间docker network ls
,这样您就可以确保它们是唯一的,并将您的服务配置为根据 的规则使用 DNS 名称相互通信NETWORK-NAME_SERVICE-NAME
。
归档时间: |
|
查看次数: |
2508 次 |
最近记录: |