让Docker端口映射受Firewall管理而非iptables

要让Docker容器的端口映射受系统防火墙(如firewalld或ufw)管理,而不是直接通过iptables,可以按照以下步骤配置:

方法一:禁用Docker的iptables规则

(1)编辑Docker配置文件:

vi /etc/docker/daemon.json

添加以下内容:

{
  "iptables": false
}

(2)重启Docker服务:

systemctl restart docker

方法二:与firewalld集成(推荐)

确保firewalld已安装并运行:

systemctl enable --now firewalld

将Docker接口添加到trusted区域:

firewall-cmd --permanent --zone=trusted --add-interface=docker0

允许特定端口通过firewalld:

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

注意事项

1、修改这些设置后,你需要通过firewalld手动管理所有Docker容器的端口访问。
2、某些Docker网络功能可能会受到影响。
3、对于已存在的容器,可能需要重新创建才能使更改生效。

你可能感兴趣的:(docker,容器,运维)