使用WSL2的Docker Desktop无法启动

u3r8eeie  于 2023-04-11  发布在  Docker
关注(0)|答案(7)|浏览(719)

突然间,我的Docker和WSL2停止工作了。我现在得到以下信息:

$ docker ps
Error response from daemon: dial unix /mnt/wsl/docker-desktop/shared-sockets/guest-services/docker.sock: connect: no such file or directory

**注意:**Docker可以通过Windows使用。

我尝试了以下方法,但没有成功:

  • 重新安装Docker Desktop。
  • 在WSL中重新安装Docker
  • 手动创建.sock文件。
    版本号
  • Docker Desktop版本:2.3.0.3(45519)
  • WSL2与Ubuntu 18.04
PS C:\Users\ms> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-18.04           Running         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2

有什么建议吗?

pjngdqdw

pjngdqdw1#

不需要安装Docker desktop,它只会产生问题,并使Windows中的速度变慢。如果你以这种方式安装Docker,你将永远不会再遇到这样的问题:

# INSTALL DOCKER PACKAGE
sudo -E apt update && sudo apt upgrade -y
sudo -E apt-get -qq install docker.io -y
# DOCKER DAEMON STARTUP (Substitute .bashrc for .zshrc or any other shell you use)
rcfile=~/.bashrc
echo '# Start Docker daemon automatically when logging in if not running.' >> $rcfile
echo 'RUNNING=`ps aux | grep dockerd | grep -v grep`' >> $rcfile
echo 'if [ -z "$RUNNING" ]; then' >> $rcfile
echo '    sudo dockerd > /dev/null 2>&1 &' >> $rcfile
echo '    disown' >> $rcfile
echo 'fi' >> $rcfile
# ENABLE CURRENT USER AS SUDO FOR DOCKER
echo $USER' ALL=(ALL) NOPASSWD: /usr/bin/dockerd' | sudo EDITOR='tee -a' visudo
sudo usermod -aG docker $USER
# REBOOT VM MACHINE
wsl.exe --shutdown

安装结束后,打开一个新的Ubuntu终端,它将准备从现在开始摇滚。您可以运行任何docker镜像,例如:

docker run hello-world

docker run -it ubuntu
x8diyxa7

x8diyxa72#

我知道这听起来很傻,但是你重新启动电脑了吗?我也有类似的问题,当我重新启动电脑时,它工作了。

plicqrtu

plicqrtu3#

在尝试了多种方法后,修复Ubuntu,重置Ubuntu。对我来说,最有效的方法是:

  • 卸载Ubuntu(备份文件后)
  • 卸载Docker Desktop
  • 重新安装最新版本的Ubuntu 20.20
  • 重新安装Docker Desktop
toe95027

toe950274#

我发现(在PowerShell中)wsl --list --verbose
docker-desktop-data stopped
原因是docker-desktop决定使用windows容器,我不知道为什么。

pu3pd22g

pu3pd22g5#

尝试关闭Windows上的所有防火墙,然后退出Docker Desktop并再次打开它

打开powershell并运行New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow,从:https://visualgdb.com/documentation/wsl2/

tvokkenx

tvokkenx6#

如果您使用Windows,请在cmd中尝试以下两个命令:
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
在这两个命令之后重新启动计算机。

emeijp43

emeijp437#

您必须在Docker桌面上启用WSL集成。
转到Docker桌面设置。
General Tab〉启用Use the WSL 2 based engine
Resources TabWSL Integration〉启用您选择的发行版
单击按钮Apply and Restart

相关问题