docker容器无法ping域名问题及解决
更新时间:2024年08月17日 12:08:12 作者:liuyeluoqing
这篇文章主要介绍了docker容器无法ping域名问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
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 # 成功!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
教你使用Portainer管理多台Docker容器环境的方法
这篇文章主要介绍了Portainer管理多台Docker容器环境,本文给大家介绍的非常详细,包括环境准备及管理docker的详细过程,需要的朋友可以参考下2021-11-11
Docker下MySQL配置文件不生效的解决方法(超全面!)
在Docker中运行MySQL并遇到需要调整配置的情况时,比如想要关闭ONLY_FULL_GROUP_BY的严格模式,我们可以通过以下步骤来实现sql_mode的修改:以下是解决此类问题的步骤和思路,需要的朋友可以参考下2024-09-09
docker安装Elasticsearch7.6集群并设置密码
这篇文章主要介绍了docker安装Elasticsearch7.6集群并设置密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-06-06


最新评论