阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

解决CentOS 8 Docker容器无法上网的问题

98次阅读
没有评论

共计 730 个字符,预计需要花费 2 分钟才能阅读完成。




本站提供 Linux 服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

CentOS 8 已经发行好长一段时间,为了尝鲜在 Online 独服上安装了 CentOS 8 系统,随之问题来了,发现 Docker 容器无法访问外网,而 CentOS 7 上则不存在这个问题。

排错分析

一开始怀疑是 Docker DNS 设置问题,导致 Docker 容器无法解析。遂修改配置文件 /etc/docker/daemon.json 设置 DNS:

{
  "dns" : [
    "8.8.8.8",
    "1.1.1.1"
  ]
}

修改后重启 Docker 服务,发现 Docker 容器还是无法联网。

解决办法

通过搜索了解到 CentOS 8 上防火墙发生了一些变化,防火墙原来使用iptables,现在使用nftables,猜测可能是转发引起的问题。通过搜索终于在 Github 上找到类似的情况:DNS Not Resolving under Network [CentOS8],解决办法为:

编辑 firewalld 配置文件/etc/firewalld/firewalld.conf,将:

FirewallBackend=nftables

修改为:

FirewallBackend=iptables

并重启 Firewalld:systemctl restart firewalld.service

最后再重启下 Docker:systemctl restart docker,验证问题解决。

总结

  1. 可通过修改 /etc/docker/daemon.json 设置 Docker DNS
  2. CentOS 8 防火墙由 iptables 变更为了nftables
  3. 可通过修改 Firewalld 配置文件 /etc/firewalld/firewalld.confnftables换回iptables

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计730字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中