当前位置: 首页 > Linux运维 > Docker > 解决CentOS 8 Docker容器无法上网的问题

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

发布于:2020-11-28 Docker 2条评论 6,132 views
如需VPS代购、PHP开发、服务器运维等服务,请联系博主QQ:337003006

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

2 条评论 “解决CentOS 8 Docker容器无法上网的问题”

  1. Kojikaww说道:

    哈哈 我也遇到了 我是直接 使用host网络解决

    1. xiaoz说道:

      我用host网络也不行,看来兼容性还有问题。

发表评论

邮箱地址不会被公开。 必填项已用*标注