Docker 带有 WSL2 的桌面无法启动
Docker Desktop with WSL2 Unable to Start
我的工作 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 桌面。
- 正在 WSL 中重新安装 Docker。
- 正在手动创建 .sock 文件。
版本
- Docker 桌面版: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
有什么建议吗?
我知道这听起来很蠢,但是你重启电脑了吗?我遇到了类似的问题,当我重新启动计算机时,它起作用了。
尝试多种方法后,修复 Ubuntu,重置 Ubunutu。对我有用的是:
- 卸载Ubuntu(备份我的文件后)
- 卸载Docker桌面
- 重新安装最新版本Ubuntu20.20
- 重新安装Docker桌面
无需安装 docker 桌面,它只会产生问题并使 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
我找到了(在 powershell 中)
wsl --list --verbose
docker-desktop-data 已停止
原因是 docker-desktop 决定使用 windows 容器。不知道为什么。
尝试关闭 Windows 上的所有防火墙,然后退出 docker 桌面并再次打开它
或
打开 powershell 和 运行 New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
,来自:https://visualgdb.com/documentation/wsl2/
或
我的工作 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 桌面。
- 正在 WSL 中重新安装 Docker。
- 正在手动创建 .sock 文件。
版本
- Docker 桌面版: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
有什么建议吗?
我知道这听起来很蠢,但是你重启电脑了吗?我遇到了类似的问题,当我重新启动计算机时,它起作用了。
尝试多种方法后,修复 Ubuntu,重置 Ubunutu。对我有用的是:
- 卸载Ubuntu(备份我的文件后)
- 卸载Docker桌面
- 重新安装最新版本Ubuntu20.20
- 重新安装Docker桌面
无需安装 docker 桌面,它只会产生问题并使 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
我找到了(在 powershell 中) wsl --list --verbose
docker-desktop-data 已停止
原因是 docker-desktop 决定使用 windows 容器。不知道为什么。
尝试关闭 Windows 上的所有防火墙,然后退出 docker 桌面并再次打开它
或
打开 powershell 和 运行 New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
,来自:https://visualgdb.com/documentation/wsl2/
或