解决启动docker报错Cannot connect to the Docker daemon问题
说明:
1.离线安装docker后安装docker
bash
启动报错Cannot connect to the Docker daemon,或者执行sudo dockerd报错
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to register "bridge" driver: failed to create NAT chain DOCKER: iptables not found

2.解决办法:
原因:Docker 网络初始化时因缺少 iptables 工具导致的
1. 安装 iptables(如未安装)
csharp
sudo apt-get update
sudo apt-get install -y iptables
2. 切换为 legacy 模式(关键步骤)
csharp
# 设置 iptables-legacy
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
# 验证选择
sudo update-alternatives --config iptables

3. 重启 Docker 服务
csharp
# 强制停止残留进程
sudo pkill -9 dockerd
# 清理旧套接字
sudo rm -f /var/run/docker.sock
# 启动 Docker(调试模式观察输出)
sudo dockerd
4. 持久化配置(防止重启失效)
csharp
# 创建配置文件
sudo tee /etc/docker/daemon.json <<EOF
{
"iptables": true,
"userland-proxy": false
}
EOF
5.验证成功
csharp
# 检查 NAT 规则
sudo iptables -t nat -L DOCKER
# 测试容器网络
sudo docker run --rm alpine ping -c 3 baidu.com
如果还是报错,那么就重装docker