【docker默认防火墙行为调整】

docker默认防火墙行为调整

docker默认会给iptables中添加映射,这部分映射防火墙管不了。

查看方式:

复制代码
iptables -t nat -L DOCKER -n
# 会显示docker增加的映射

需要先关了docker操作iptables控制。

复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
  "iptables": false, # 这句禁用了操作iptables
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF
sudo systemctl restart docker

之后docker容器内部要访问宿主机所在网络中的其他地址的服务时就不通了。接下来需要启用出站逻辑

复制代码
# 启用 ip_forward + 添加 MASQUERADE
# 查看是否开启
sysctl net.ipv4.ip_forward

# 如果是 0,表示未开启
# 临时开启
# sudo sysctl -w net.ipv4.ip_forward=1

# 永久开启
# echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf

# 假设主网卡是 eth0(根据 `ip a` 确认)
ip a
# 或更通用:所有 Docker 网段
sudo iptables -t nat -A POSTROUTING ! -d 172.16.0.0/12 -s 172.16.0.0/12 -o eth0 -j MASQUERADE
# 允许 FORWARD 流量
sudo iptables -A FORWARD -i docker0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o docker0 -m state --state RELATED,ESTABLISHED -j ACCEPT

# 永久信任 Docker 网络接口 
# docker0、br-ee7c0aad4e58 是我服务器上docker增加的网卡 `ip a` 看到的
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --permanent --zone=trusted --add-interface=br-ee7c0aad4e58
sudo firewall-cmd --reload
相关推荐
对象存储与RustFS5 小时前
网盘限速逼你开会员?用 RustFS 自己搭一个不限速的“私人网盘
服务器·后端·docker
程序员老赵8 小时前
Docker 部署 Filestash:轻松搭建浏览器文件管理平台
前端·docker·开源
艾伦_耶格宇8 小时前
【DOCKER容器实战】-5 Docker容器镜像的构建
运维·docker·容器
程序员小孔.11 小时前
基于 SpringBoot + UniApp + Vue 的家政服务系统设计与实现
前端·数据库·spring boot·python·docker·微信小程序
ggaofeng11 小时前
k8s中的dns
云原生·容器·kubernetes
我不会起名字3221 天前
Redis 从 0 到 1(九):主库宕机 30 秒自动切主——1 主 2 从 3 哨兵 + Go 客户端
redis·docker·sentinel·高可用·哨兵
姜鱼问生1 天前
每次开机手动检查 6 样东西?我写了个 2 秒自检脚本
运维·网络·nginx·docker·容器
wangqiaowq1 天前
PostgresSQL server Docker 安装部署
运维·docker·容器
程序员阿明1 天前
docker搭建视频流服务go2rtc,webRTC
docker·容器·webrtc
TTATTC1 天前
让 16 个 AI 员工在飞书群自我协同:基于 OpenClaw 的多 Agent 敏捷 Squad 拓扑与一人公司实操
docker·开源