概述

完整错误:

module=libcontainerd namespace=plugins.moby
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables --wait -t nat -N DOCKER: iptables: Invalid argument. Run `dmesg' for more information.

分析:

这个错误通常与 Docker 无法创建必要的 iptables 链有关。

解决

为此我进行了以下尝试,并成功解决了此报错:

1. 安装 iptables:

sudo apt update
sudo apt install iptables
sudo systemctl start iptables

2. 检查 Docker 依赖项:

Docker 需要依赖 bridge 模块和 br_netfilter 模块。运行以下命令检查:

lsmod | grep bridge
lsmod | grep br_netfilter
```

如果没有输出结果,你可以加载这些模块:

````shell
sudo modprobe bridge
sudo modprobe br_netfilter
```

3. 清除 Docker iptables 规则:

Docker 之前创建的 iptables 规则可能导致冲突。可以尝试清除这些规则并重新启动 Docker。运行以下命令:

sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo systemctl restart docker
```

这将清除 `nat` 表和 `mangle` 表中的 Docker 规则,并重新启动 Docker。

到这一步,我的docker已经可以正常运行。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐