虚拟机中的Docker容器不能访问外网域名的问题

本文解决了一个在Centos8虚拟机中使用Docker容器无法通过域名访问外网的问题。问题根源在于CentOS防火墙阻止了NAT转发。通过在防火墙中添加masquerade规则并重启Docker服务,成功实现了域名解析和网络访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:
在Windows系统下使用vmware,创建了Centos8的虚拟机。在虚拟机中,安装了docker,并配置了一个容器,在容器中,可以正常ping通外网IP地址,但是无法ping通域名。
主要导致的问题就是需要域名的访问都会失败,比如系统包更新、配置一些应用需要get内容等等。

采坑过程:
开始一直以为是DNS的问题,查看/etc/resolv.conf,配置正常。手工配置hosts文件,可以正常ping通。最终各种配置无果。

解决方法:
原来只是CentOS防火墙的问题,需要允许NAT转发。
命令如下:

firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --reload

最后重启docker即可

systemctl restart docker

参考:
http://varmain.com/index.php/post/50.html
https://www.cnblogs.com/hope250/p/8035974.html
https://www.2cto.com/os/201408/327198.html
https://blog.51cto.com/14156658/2454329

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坏海豹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值