简短回答:
CentOS 自带的防火墙(firewalld 或 iptables)是兼容 Docker 的,但需要注意它们的工作方式和一些常见“坑”。
firewalld 中创建 docker zonedocker0 网桥加入信任区✅ 正常使用 Docker 一般不需要手动改防火墙
⚠️ 但不要 直接 用 iptables 命令乱改规则,容易被 firewalld / Docker 覆盖
iptables 作为主防火墙,Docker 也能工作⚠️ 问题点:
iptables 规则可能被 Docker 覆盖DOCKER 链不要手动删原因通常是:
firewalld 没开 masqueradefirewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --reload
检查:
firewall-cmd --list-ports
如果没开:
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
解决:
systemctl enable firewalld
systemctl enable docker
✅ CentOS + Docker 推荐组合
❌ 不推荐:
CentOS 防火墙完全兼容 Docker,Docker 本质就是基于 iptables 工作的;只要不“乱改底层规则”,基本不会出问题。
如果你有:
可以直接贴出来,我可以帮你精确排查。