繁体   English   中英

尽管使用了 WSL2 并完成了所需的步骤,Docker 与 WSL2 的集成似乎不再适用于 Docker Desktop 4.9.0

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM