首页/云/Docker 容器速查/Docker 与 iptables 规则的关系
本包目录(366 条)
基础命令50 条镜像与构建107 条
网络与存储52 条
Compose 编排55 条资源与安全50 条容器排障52 条

Docker 与 iptables 规则的关系

Docker 通过 iptables 的 DOCKER 链实现端口发布与出网 NAT;DOCKER-USER 链是留给使用者的过滤入口,排端口不通先看这两条链。

Docker 容器速查云更新于 2026-10-12
关键链nat 表 DOCKER(DNAT)/ filter 表 DOCKER-USER(自定义过滤)
查看iptables -t nat -L DOCKER -n / iptables -L DOCKER-USER -n
常见困惑主机防火墙与 Docker 链的生效顺序

示例

示例
sudo iptables -t nat -L DOCKER -n --line-numbers
sudo iptables -L DOCKER-USER -n --line-numbers
docker run -d -p 127.0.0.1:8080:80 nginx
需要按来源限制已发布端口时,用 DOCKER-USER 链加规则;限制内网服务优先把端口绑到 127.0.0.1。

易错点

  • 按普通 ufw/firewalld 规则屏蔽端口时,Docker 发布的端口可能仍可访问,因为流量走 Docker 自有链
  • 直接改动 DOCKER 链会被 Docker 重建覆盖,自定义过滤一律放 DOCKER-USER

数据来源与参考

  • Docker 官方文档:Packet filtering and firewalls(docs.docker.com/network/packet-filtering-firewalls)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌