docker 的 nftables 规则

问题描述

系统:RHEL 8.4 Docker 版本:20.10

RHEL 8 已从 iptables 迁移到 nftables,Docker inbuild 使用 iptables 在机器上设置防火墙规则。

它似乎中断了从 docker 容器到主机服务以及同一网络上其他托管 docker 容器的通信。

我必须与在端口 5000 上的容器中托管的注册表进行通信。

而且我还在容器中托管了 impala 服务并打开了以下端口

21000

21050

25000

25010

25020

此外,当我登录到容器时,它无法连接到互联网。

有谁知道可以设置什么规则来与 docker 进行适当的通信。 此外,容器中托管的服务必须能够联系所有相关的托管服务。

到目前为止尝试过的东西:

在 /etc/docker/daemon.json 中进行了更改

{
"iptables" : false
}

并基于此 link 尝试设置规则,但没有成功

仅供参考:我不知道在 linux 防火墙中设置任何类型的规则(不是使用 iptables 也不是使用 nftables)

解决方法

从 Docker 20.10 开始,Docker 提供了对 firewalld 的支持,无需手动添加任何规则。

它解决了我与 iptables 和 efatbles 相关的问题