解决启动docker报错Cannot connect to the Docker daemon问题
解决启动docker报错Cannot connect to the Docker daemon问题
说明:
1.离线安装docker后安装docker
启动报错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(如未安装)
sudo apt-get update
sudo apt-get install -y iptables
2. 切换为 legacy 模式(关键步骤)
# 设置 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 服务
# 强制停止残留进程
sudo pkill -9 dockerd# 清理旧套接字
sudo rm -f /var/run/docker.sock# 启动 Docker(调试模式观察输出)
sudo dockerd
4. 持久化配置(防止重启失效)
# 创建配置文件
sudo tee /etc/docker/daemon.json <<EOF
{"iptables": true,"userland-proxy": false
}
EOF
5.验证成功
# 检查 NAT 规则
sudo iptables -t nat -L DOCKER# 测试容器网络
sudo docker run --rm alpine ping -c 3 baidu.com
如果还是报错,那么就重装docker