Ubuntu通过防火墙管控Docker容器
目录
1、开启防火墙
2、Docker配置调整
3、防火墙添加端口
4、防火墙规则管理
当Ubuntu系统开启防火墙时,正常情况下只有开放的端口才能被正确访问。但是在代码中配置了Docker容器,且通过Docker容器初始化其他容器(并没开放容器对应映射端口)时,发现可以直接进行连接,搜了一圈资料得出结论:发现是Docker 仍然管理 iptables,优先级高于 UFW
1、开启防火墙
# 启用防火墙
sudo ufw enable# 允许 SSH 连接(防止配置过程中断联)
sudo ufw allow 22/tcp
2、Docker配置调整
# 编辑 Docker 配置文件
sudo vim /etc/docker/daemon.json
添加以下配置内容:
{"iptables": false
}
重启Docker服务:
sudo systemctl restart docker
3、防火墙添加端口
# 开放容器 80 端口(通用规则)
sudo ufw allow 80/tcp# IP/端口动态替换
sudo ufw allow from 192.168.1.100 to any port 80 proto tcp
4、防火墙规则管理
# 查看带编号的规则列表
sudo ufw status numbered# 删除指定编号规则(示例删除编号3的规则)
sudo ufw delete 3