docker容器无法ping域名问题及解决

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

docker容器无法ping域名问题

现象

容器内

ping 114.114.114.114 #正常 ping baidu.com #超时

原因

DNS错误不能进行域名解析。

方法一:

容器目录下新建resolv.conf文件。

vi ./resolv.conf

写入:

search donot nameserver 8.8.8.8 nameserver 114.114.114.114 nameserver 127.0.0.11 options ndots:0

在docker-compose.yml中加入文件映射。

volumes: – ./resolv.conf:/etc/resolv.conf方法二:

在docker配置中加入默认DNS(这个试了未成功,暂没分析)。

docker容器无法访问外网 ping: bad address

# 进入容器 docker exec -it 容器id sh ping www.baidu.com # 返回结果:ping: bad address www.baidu.com

推测原因应该是DNS网络解析的问题,网上查资料得知,docker在创建时默认不会使用宿主机的网络,是被单独隔离在一个网络环境中运行的。

考虑到我创建的容器不需要单独的网络环境,所以使用–network=host,实现docker访问宿主机网络,最终解决问题。

# 容器停止,并删除 docker stop [容器id] docker rm [容器name] # 重新创建docker容器 docker run -it -d –init –name [容器name] –network=host -p [端口] [镜像] # 进入容器查看 docker exec -it [新的容器id] sh ping www.baidu.com # 成功!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容