首页/云/云与容器速查/容器内 DNS 解析失败排查
本包目录(340 条)

容器内 DNS 解析失败排查

容器里域名解析不了:先看 /etc/resolv.conf 指向什么,再用 nslookup/dig 实测;典型元凶是 resolv.conf 指向宿主本地回环解析器(127.0.0.53),容器内不可达。

云与容器速查云更新于 2026-10-12
第 1 步docker exec 容器 cat /etc/resolv.conf
第 2 步docker exec 容器 nslookup example.com(或 getent hosts)
常见原因resolv.conf 指向 127.0.0.x:宿主专属地址容器访问不到
自定义网络内置 DNS 127.0.0.11 解析容器名;解析服务名失败查网络归属
处置--dns 指定公共/内网 DNS;daemon.json 全局改;重建容器生效

排查命令

排查命令
docker exec -it myapp cat /etc/resolv.conf
docker exec -it myapp nslookup db
docker run -d --dns 223.5.5.5 --dns 119.29.29.29 --name app myapp:1.2.3
宿主机用 systemd-resolved 时常见 127.0.0.53:要么配 daemon.json 的 dns,要么让 Docker 使用真实上游 DNS。

易错点

  • 改宿主 resolv.conf 后不重建容器:容器内还是旧文件(启动时快照)
  • 只测 ping:ICMP 被禁时误判网络故障,改用 nc/curl 测端口

数据来源与参考

  • Docker Docs:Container networking(DNS services)
  • systemd-resolved 文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌