failed to create network error response from daemon filed to setup ip tables问题
容器在运行中,调整了 iptables 策略,并且停止/重启了防火墙,然后再操作容器就会报这个错误,我们可以重启 docker 解决此问题。
1 | # 重启docker |
iptables命令-Linux
iptables 详解
iptables 的结构
iptables 是 Linux 防火墙系统的重要组成部分,iptables 的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用 iptables 进行控制。
iptables 是集成在 Linux 内核中的包过滤防火墙系统。使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。
iptables 的表 tables 与链 chains
“四表”是指 iptables 的功能,默认的 iptables 规则表有 filter 表(过滤规则表)、nat 表(地址转换规则表)、mangle(修改数据标记位规则表)、raw(跟踪数据表规则表):
- filter 表:控制数据包是否允许进出及转发,可以控制的链路有 INPUT、FORWARD 和 OUTPUT。
- nat 表:控制数据包中地址转换,可以控制的链路有 PREROUTING、INPUT、OUTPUT 和 POSTROUTING。
- mangle:修改数据包中的原数据,可以控制的链路有 PREROUTING、INPUT、OUTPUT、FORWARD 和 POSTROUTING。
- raw:控制 nat 表中连接追踪机制的启用状况,可以控制的链路有 PREROUTING、OUTPUT。
“五链”是指内核中控制网络的 NetFilter 定义的 5 个规则链。每个规则表中包含多个数据链:INPUT(入站数据过滤)、OUTPUT(出站数据过滤)、FORWARD(转发数据过滤)、PREROUTING(路由前过滤)和 POSTROUTING(路由后过滤),防火墙规则需要写入到这些具体的数据链中。
- 如果是外部主机发送数据包给防火墙本机,数据将会经过 PREROUTING 链与 INPUT 链;
- 如果是防火墙本机发送数据包到外部主机,数据将会经过 OUTPUT 链与 POSTROUTING 链;
- 如果防火墙作为路由负责转发数据,则数据将经过 PREROUTING 链、FORWARD 链以及 POSTROUTING 链。
Ubuntu中防火墙iptables配置
ufw 禁用端口未生效
iptables-save
查看防火墙状态(节选):
1 | -A DOCKER ! -i br-fe67cfba7476 -p tcp -m tcp --dport 15000 -j DNAT --to-destination 192.168.224.2:5000 |
在 docker 中只要有容器映射了端口 docker 就会自动加 iptables,所以根本就没走到 ufw 端口就被放行了。
参考:
Ubuntu22-04启用UFW防火墙
UFW,或称 Uncomplicated Firewall,是 iptables 的一个接口,为不熟悉防火墙概念的初学者提供了易于使用的界面,同时支持 IPv4 和 IPv6,广受欢迎。
更新 Ubuntu
1 | sudo apt update && sudo apt upgrade -y |
注意:docker 自动在防火墙列表中添加了开放端口的规则. 所以根本就没走到 ufw 端口就被放行了。
启用、安装或删除 UFW
默认情况下,应安装 UFW,但如果已将其删除,请重新安装 UFW。
1 | sudo apt install ufw -y |
检查防火墙状态
1 | # 服务状态 |
设置 SSH 防火墙规则
启用防火墙,它将阻止所有传入连接并允许所有传出连接。 这将立即帮助保护您的系统。
对于服务器用户或任何其他使用 SSH 远程连接会话的用户,您可以将自己锁定。 幸运的是,您可以在服务未激活时添加 UFW 规则,从而允许 SSH 服务。
1 | sudo ufw allow ssh |
Docker 推送镜像
自定义 Docker Hub 服务器 Http 支持
1 | vim /etc/docker/daemon.json |
添加 hub 地址:
1 | { |
示例:
1 | { |
重启docker 服务
1 | systemctl restart docker |
登录 Docker Hub
1 | docker login 10.10.0.105:8080 |
镜像生成,上传
1 | # 生成镜像 |