我正在尝试使用命令在 WSL(Windows 10)中运行 docker sudo service docker start
,它显示:
Starting Docker: docker
但是当我运行时sudo docker images
,它告诉我:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
关于如何修复此问题,我有什么想法吗?
答案1
它来自于使用 nftables 代替 iptables我 从这些线程中
找到了此解决方案:
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
https://github.com/microsoft/WSL/discussions/4872
https://patrickwu.space/2021/03/09/wsl-solution-to-native-docker-daemon-not-starting/
答案2
我在断电后遇到了这个问题。如果这也是我遇到的问题,那么你的settings.json
Docker 可能已损坏。修复方法:
- 移至
%AppData\Docker\settings.json
(通常C:\Users\<user_user_profile>\AppData\Roaming\Docker\settings.json
)安全位置进行备份 - 重启 Docker Desktop
- 如果此操作能解决问题,您可以删除备份
settings.json
。如果没有,您可以将其恢复到之前的位置。
答案3
这个修复对我有用:
- 跑步
sudo update-alternatives --config iptables
- 进入1选择iptables-旧版
- 运行
sudo service docker
启动Docker