Ubuntu中安装Docker报错
报错信息
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
在根据官方文档的命令下在Ubuntu中安装Docker,安装完成后,启动sudo docker run hello-world命令
sudo docker run hello-world命令启动失败
报错信息
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Docker始终无法启动
在查看docker日志
cat /var/log/docker.log
出现以下报错
failed to start daemon: Error initializing network controller: error obtaining controller instance: unable to add return rule in DOCKER-ISOLATION-STAGE-1 chain
有关这个问题查阅资料发现,这与WSL2内核问题有关因为从 Ubuntu 20.10 开始使用nftables需要 Linux Kernel 5.8,而 Microsoft 目前使用 5.4。
原文地址(https://blog.ecbeing.tech/entry/2021/09/07/150000#Docker-Engine%E3%81%8C%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%AA%E3%81%84)
解决方法:
运行以下命令
sudo update-alternatives --config iptables
选择路径优先级状态
* 0 /usr/sbin/iptables-nft 20 自动模式
1 /usr/sbin/iptables-legacy 10 手动模式
2 /usr/sbin/iptables-nft 20 手动模式
按<enter> 保留当前选择[*],或键入选择编号:1
update-alternatives:使用 /usr/sbin/iptables-legacy 在手动模式下提供 /usr/sbin/iptables (iptables)
再次运行
sudo service docker start
sudo service docker status
* Docker is running
至此docker启动成功