[英]Docker integration with WSL2 no longer seems to work with Docker Desktop 4.9.0 despite using WSL2 and walking through the required steps
我刚刚从 Docker Desktop 4.8.* 更新到 Docker Desktop 4.9.0。
当我在 4.8.* 上时,我已经按照本教程进行操作,我可以打开我的终端,连接到 Ubuntu 20.04 发行版并运行 docker 命令,例如 docker images 。
现在我已经更新到 4.9.0 (80466),并重新启动了我的 PC,我不再可以通过 bash 运行 docker 命令,尽管我已经多次完成了教程中的步骤,卸载并重新安装了 Docker Desktop 并完成了同样的步骤又一次。
在设置 > 常规下,启用了“使用基于 WSL2 的引擎”复选框。
在设置>资源>WSL 集成下,启用与我的默认发行版集成的复选框已启用。 在同一个选项卡下,“启用与其他发行版的集成”滑块也打开了,我尝试再次打开/关闭它,重新启动 docker 客户端,然后再试一次。 没有任何效果。
当我打开 powershell 并运行 wsl.exe -l -v 我得到:
wsl.exe -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
docker-desktop Running 2
docker-desktop-data Running 2
这意味着我确实在使用 WSL2 而不是其他版本。
我在 bash 中收到以下错误:
The command 'docker' could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.
For details about using Docker Desktop with WSL 2, visit:
https://docs.docker.com/go/wsl2/
除了更新 Docker 客户端之外,我没有更改任何可能导致此行为的内容。
2022 年 6 月 20 日更新: whereis docker in the WSL-terminal
docker 我得到:
$ whereis docker
docker: /usr/bin/docker /usr/local/lib/docker /mnt/c/Program Files/Docker/Docker/resources/bin/docker /mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe /usr/share/man/man1/docker.1.gz
但是,当我随后运行命令/usr/bin/docker
时,我收到消息“没有这样的文件或目录”。
另一个编辑:我了解到 /usr/bin/docker 是一个符号链接,在我的情况下它会不断中断,我通过运行命令“file /usr/bin/docker”了解到这一点。 它指的是mnt/wsl/[bla bla]/docker
。
我认为在更新 Docker Desktop 之后,WSL 发行版一直试图链接到它的旧版本。 因此,我尝试删除所有我能找到的 docker 的符号链接,重新启动我的 WSL2 发行版,卸载 Docker Desktop for Windows,然后重新安装它。
这并不能解决问题本身。 这很奇怪。 我还注意到,现在启动计算机的顺序显然很重要:我需要确保 Docker 在 Windows 上运行,然后在 powershell 中运行 docker 命令,例如docker ps
或其他命令,然后在此命令成功后,我可以启动我的 bash-shell 并在那里运行docker ps
。 如果我在 powershell 中运行 docker 命令之前运行任何 docker 命令,我会收到与我在初始帖子中描述的相同的错误,并且符号链接再次消失。
最有趣的是我已经安装了另一个单独的 Ubuntu 21.04 发行版(我想要 20.04,但设法得到了错误的版本......),我不需要完成所有这些步骤; 我可以在那里跳入 bash 并运行 docker 命令,它可以工作。
如果当前问题持续存在并且没有找到其他解决方案,我想我稍后会转移到 Ubuntu 21.04 安装。
使用 WSL shell 中的whereis docker
命令检查是否找到了 docker 可执行文件。 当 Docker 启动时,它应该指向/usr/bin/docker
。
您收到的消息是由 Docker Desktop 在/mnt/c/Program Files/Docker/Docker/resources/bin/docker
位置(或在 Windows 上安装 Docker Desktop 的位置)添加的 stub docker 命令生成的。
首先,尝试直接执行命令/usr/bin/docker
。 如果可行,很可能您的 PATH 变量不正确。
更新:Docker Desktop的GitHub页面上有一个关于这个问题的问题: https ://github.com/docker/for-win/issues/12783
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.