找不到带有docker的Ubuntu WSL

找不到带有docker的Ubuntu WSL,docker,windows-subsystem-for-linux,Docker,Windows Subsystem For Linux,在此WSL 1发行版中找不到命令$docker。 我们建议将此发行版转换为WSL2并激活 Docker桌面设置中的WSL集成 有关详细信息,请参阅 无法更改为WSL2,也无法安装docker: 正如泰勒在评论中所说,您需要从WSL连接到docker桌面。 在您附加的图像中,有一个复选框,expose daemon… 选中此框。 现在您需要docker cli,您可以安装Linux虚拟机,然后在刚才安装的Linux虚拟机中安装docker。 然后运行哪个docker并将此文件复制到windows计

在此WSL 1发行版中找不到命令
$docker
。 我们建议将此发行版转换为WSL2并激活 Docker桌面设置中的WSL集成

有关详细信息,请参阅

无法更改为WSL2,也无法安装docker:


正如泰勒在评论中所说,您需要从WSL连接到docker桌面。
在您附加的图像中,有一个复选框,
expose daemon…
选中此框。
现在您需要docker cli,您可以安装Linux虚拟机,然后在刚才安装的Linux虚拟机中安装docker。
然后运行
哪个docker
并将此文件复制到windows计算机。
将docker可执行文件复制到WSL上的
/usr/local/bin

现在在WSL中运行以下命令

echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc
. ~/.bashrc
这在WSL1上对我很有效

我遵循了以下步骤:

另外,对于进入ubuntu的docker,作为最后一步,我在docker资源中启用了它。 设置>资源>WSL集成。
发件人:

假设您的系统中已经有wsl 2,请以管理员身份运行powershell:

> Stop-Service -Name "com.docker.service"
运行
wsl--list--verbose
,它将为您提供wsl运行进程的列表:

> wsl --list --verbose
  NAME                   STATE           VERSION
  Ubuntu-20.04           Running         1
然后用wsl切换它——设置版本2:

> wsl --set-version Ubuntu-20.04 2
Conversion in progress, this may take a few minutes...
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
Conversion complete.

您需要转到docker桌面设置,并在“资源->WSL集成”中启用与发行版的集成


尽管自安装以来已启用集成WSL,但我的问题似乎是一样的

在windows shell中:

> wsl docker --version

The command 'docker' could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.

See https://docs.docker.com/docker-for-windows/wsl/ for details.
> wsl docker --version
Docker version 20.10.2, build 2291f61
解决此问题的一个选项是重新安装Docker Desktop(),但不需要这样做

下面的步骤对我有用(我在上找到)

打开windows shell(可能作为管理员),然后运行:

> wsl -t docker-desktop
> wsl --shutdown
> wsl --unregister docker-desktop
然后转到windows服务,停止Docker桌面服务,或以管理员身份在windows shell中运行命令:

> Stop-Service -Name "com.docker.service"
最后,重新启动Docker桌面应用程序

在windows shell中测试:

> wsl docker --version

The command 'docker' could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.

See https://docs.docker.com/docker-for-windows/wsl/ for details.
> wsl docker --version
Docker version 20.10.2, build 2291f61

您需要以管理员身份运行WSL控制台。
如果没有,docker命令可能无法识别。

对于我来说,没有任何工作例外:右键单击running docker图标(时钟旁边)并选择“切换到Linux容器”


我们走了!现在我可以使用菜单设置>资源>WSL集成。

法布里西奥·佩雷拉斯的答案对我来说很有效,但我不得不经常这样做,这仍然很烦人。 结果表明,启动系统的顺序也很重要

首先启动Docker,然后启动WSL2


我不使用Windows启动Docker Desktop,通常已经在WSL中打开了终端。然后Docker找不到了。Fabricios answer对我有效,因为我关闭了WSL2,然后在Docker已经运行时再次启动它。

您是否在WSL环境中安装了Docker?您需要为windows操作系统安装完整的docker,然后在WSL环境中安装docker CLI工具,将WSL的docker指向主机的docker端口。这应该会有帮助:虽然这个链接可能会回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。这个+乔伊的答案对我很有用。谢谢大家。只有在安装了
wsl\u update\u x64.msi
之后才能工作。请参见第3步我的Docker Desktop应用程序上没有WSL集成,我是否必须升级Docker Desktop才能获得WSL集成功能?我必须右键单击Docker图标(系统任务栏)并选择Restart Docker…这很有帮助,thxI在Docker Desktop上不断找到工厂重置是唯一有效的方法这对我也有效,但我几乎每天都要这么做。还有其他人经历过吗?当我右键点击蓝鲸时,没有重启菜单项。但是,错误(疑难解答)图标中有一个重新启动。但是重新启动对我不起作用。如果你有多个版本,你可能还想将其设置为默认发行版:
wsl——设置默认Ubuntu-20.04