主机用dnsmasq且谷歌DNS被拦截时Docker容器DNS失效如何解决?
容器DNS解析故障排查方案
问题场景
主机网络访问完全正常,但容器内运行的程序无法解析DNS名称(初期很容易被误判为“容器无法访问网络”)。
快速验证步骤
可以用预装网络工具的轻量Docker镜像快速确认问题:
- 启动带诊断工具的Ubuntu容器:
$ sudo docker run -ti mmoy/ubuntu-netutils /bin/bash - 在容器内尝试ping域名验证连通性:
root@082bd4ead733:/# ping www.example.com ... 无响应(超时)... ^C - 用
host命令直接测试DNS解析能力:root@082bd4ead733:/# host www.example.com ... 无响应(超时)... ^C
补充说明:
mmoy/ubuntu-netutils是基于Ubuntu的轻量镜像,预装了ping、host等常用网络诊断工具,专门用于快速排查容器网络类问题。
内容的提问来源于stack exchange,提问作者Matthieu Moy




