CentOS 7.9环境下Docker桥接网络容器无法访问外网问题解决方案
Docker桥接网络容器公网域名解析异常解决方案
问题根因
你当前遇到的报错为域名解析失败,已验证公网IP可正常访问,说明网络转发、防火墙规则均无异常,问题核心为容器未配置可用的DNS解析服务器。
解决方法
无需使用host网络模式,直接在docker-compose配置文件中为对应服务添加DNS配置即可,配置示例如下:
services: # 此处替换为你实际的服务名 your-service: # 原有镜像、端口、卷挂载等配置保持不变 dns: - 8.8.8.8 # 可替换为国内公共DNS,如114.114.114.114、223.5.5.5等 dns_search: - domain.name # 可根据自身域名搜索需求调整,无特殊需求可省略 # 原有自定义网络配置保持不变 networks: mynetwork: driver: bridge
配置修改完成后执行docker-compose up -d重启服务即可生效。重启后可进入容器执行cat /etc/resolv.conf验证DNS配置是否已经写入。
注意事项
- 即使你已经在Docker的daemon.json、docker.service等全局配置文件中设置过DNS参数,docker-compose也不会默认读取这些全局自定义配置,必须在docker-compose.yml中单独配置才会生效。
- 若配置后仍有解析异常,可检查宿主机的iptables规则是否允许容器的DNS请求(默认53端口UDP协议)放行。
内容的提问来源于stack exchange,提问作者Swurderer
相关产品推荐
相关产品推荐

