为什么firewalld 没有过滤在我的Docker 容器中运行的服务?

为什么firewalld 没有过滤在我的Docker 容器中运行的服务?

从 iptables 迁移到 Firewalld 并使用 Firewall-cmd 更新规则后,我的服务得到了正确过滤。然后,我使用 Docker 将所有服务移至容器,并使用 docker-compose 运行所有内容。

我的默认区域是“公共”。我已手动将 docker0、我的外部(以太网)接口以及 Docker 容器似乎用来与外界通信的接口 (br-304604a31e79) 添加到“公共”区域。我已运行命令将接口移动到“公共”区域(带标志和不带标志)--permanent

当我用来nmap扫描我的服务器时,Docker 容器中运行的服务仍然可以访问(仍然是“打开”,而不是“被过滤”)。

为什么firewalld 没有过滤在我的Docker 容器中运行的服务?

答案1

Docker 有自己的防火墙,只有您在配置容器时明确公开的端口才会在防火墙中打开。只有向外界公开的端口才需要在 docker-compose.yml 中设置。您定义的容器始终可以相互通信。

相关内容