软件开发Docker

关于新版Docker-iptables与firewalld之间并存问题?

背景前提:Docker版本大于等于 20.10.0,Docker在最新的版本里自动创建了一个名为docker的 firewalld zone,并把它的所有网络接口(包括docker0)加入到了这个区域里面,执行将docker0接口移到docker zone的命令,就可以实现docker与firewalld并存。

问题:
如果实现了并存,且重启firewalld之间不再影响docker。那通过配置firewalld zone=docker的规则还会对docker生效么?是不是如果不关闭docker的ipatbles的功能(iptables=false),无论是firewalld在zone=[public]还是zone=docker配置规则都是不会影响到docker的服务访问的?

参与5

1同行回答

wojiaoshishi321wojiaoshishi321项目经理内蒙古妇幼保健院
如果实现了 Docker 和 firewalld 的并存,那么 Docker 的 iptables 规则和 firewalld 的规则是同时生效的。因此,如果你配置了 firewalld 的 zone=docker 的规则,那么这些规则仍然会对 Docker 容器产生影响。无论是在 firewalld 的 public 区域还是 docker 区域设置规则,都会...显示全部

如果实现了 Docker 和 firewalld 的并存,那么 Docker 的 iptables 规则和 firewalld 的规则是同时生效的。因此,如果你配置了 firewalld 的 zone=docker 的规则,那么这些规则仍然会对 Docker 容器产生影响。无论是在 firewalld 的 public 区域还是 docker 区域设置规则,都会生效。

需要注意的是,如果不关闭 Docker 的 iptables 功能,那么 Docker 仍然会维护自己的 iptables 规则。如果同时使用了 iptables 和 firewalld,那么两个防火墙的规则会同时生效,这可能会导致规则冲突或者不符合预期的情况。因此,如果要使用 firewalld,建议关闭 Docker 的 iptables 功能,让 firewalld 管理所有的网络规则,以避免规则冲突。可以在 Docker 的配置文件中设置 iptables=false 来关闭 Docker 的 iptables 功能。

收起
医院 · 2023-02-20
  • 谢谢您的回答,但是如果使用 iptables=false ,然后只通过firewalld管理docker的话,是不是会让docker-swarm集群内部的容器间通信受限制?如果关闭了 iptables=false,那么通过 zone=docker 管理docker能否做到 Docker 自身iptable控制的那种效果呢?还是说只通过firewalld管理的话还是比较局限的。
    2023-02-20

ChatGPT 回答

如果已经成功实现了Docker与Firewalld的并存,并且重启Firewalld也不会影响Docker,那么配置Firewalld的zone=docker的规则仍然会对Docker生效。因为Docker的网络接口已经被加入到docker这个Firewalld zone中,所以任何应用程序的网络流量都会被Firewalld检查和过滤。

至于iptables的功能,如果设置为false,那么Docker将不再使用iptables来管理网络规则,而是使用nftables。在这种情况下,Firewalld在zone=[public]或zone=docker配置规则都会影响到Docker的服务访问。但是需要注意的是,如果使用nftables,那么Firewalld的规则将不会被转换为iptables规则,因此需要使用nftables规则来配置Firewalld。

提问者

圣剑传说
职工圣剑制造有限公司
擅长领域: 云计算系统运维服务器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-02-02
  • 关注会员:1 人
  • 问题浏览:1175
  • 最近回答:2023-02-20
  • X社区推广