当前位置: 首页 > 知识库问答 >
问题:

Ubuntu 错误“在此 WSL 2 发行版中找不到命令 'docker'。

司马项明
2023-03-14

我在 Ubuntu 上运行 WSL 2,在计算机上启动并运行 Docker 时遇到了一些问题。我已经在后台安装并运行了 Docker 桌面,并且我还与 Ubuntu 启用了 WSL 集成。

当我尝试运行简单的docker命令时,例如<code>docker--version

在此 WSL 2 发行版中找不到命令“docker”。我们建议在 Docker 桌面设置中激活 WSL 集成。

有关将Docker Desktop与WSL 2一起使用的详细信息,请访问:

https://docs.docker.com/go/wsl2/

我已经访问了该链接并遵循了它给出的所有说明,实现了WSL与Ubuntu的集成,如下所示:

但是,我收到的错误仍然相同。有谁知道如何解决这个问题?

注意:我可以在PowerShell和Command Prompt中运行Docker命令(例如docker --version),但在Ubuntu中无法识别。

共有3个答案

程城
2023-03-14

我能够通过采取以下步骤来解决这个问题,但它需要一些解决方法,因为我无法在下载后单击安装必要的WSL2Linux内核更新。

然后我必须完成这个过程。

然后,我必须转到PowerShell命令行,导航到上述WSL更新的位置,并运行以下命令(在管理员模式下——而不是在Linux命令行中):

<代码>

这是我成功安装更新的唯一方法

然后在Powershell命令行(在管理员模式下 - 而不是linux命令行),我运行

wsl——设置Ubuntu 2的版本

按照这里的说明

罗鸿畴
2023-03-14

尝试将以下行放在您的乌班图的~/.bashrc中

PATH+=":/mnt/c/Program Files/Docker/Docker/Resources/bin"

( 它可能是 /c/程序文件/...取决于您的挂载点。您可以使用命令 df ) 进行检查

并启动一个新的bashshell,然后运行<code>docker</code>。

贝洲
2023-03-14

“Docker桌面”应该集成到WSL中,无需额外配置。特别是,没有必要将文件夹附加到PATH环境变量中。

当然,必须确保为WSL2设置了“Docker Desktop”和特定的WSL发行版:在“Docker Desktop”设置中,必须选中“常规/使用基于WSL2的引擎”,并且< code>wsl -l -v应列出版本2。如果后者不成立,可以通过< code>wsl - set-version来解决

“Docker桌面”通常与默认发行版集成。从<code>wsl-l-v<code>中的星号可以看出选择了哪一个。对我来说,这曾经被设置为“docker桌面数据”(可能是因为“DockerDesktop”在发行版之前就已经安装)。可以通过<code>wsl--set default来更改默认分布

如果除默认发行版以外的其他发行版也应该使用 Docker,则需要在“Resources/WSL 集成”的发行版列表中显式选择它。如果最近在“Docker Desktop”已运行时安装了其他发行版,请按“刷新”。

据我所知,“集成”是指自动创建指向/mnt/wsl/docker桌面/cli工具/usr/bin/docker的链接。由于无论集成设置如何,/mnt/wsl/docker desktop/cli tools/usr/bin/docker似乎在所有发行版中都可用,因此/mnt/wsl/docker desktop/cli tools/usr/bin及其内容的存在(或不存在)可能有助于分析问题。应该有dockerdockercompose等:

ls -l /usr/bin/docker
ls -l /mnt/wsl/docker-desktop/cli-tools/usr/bin
 类似资料:
  • 我有Windows10Professional2004Build19041.329。 我有最新的Docker桌面窗口,并选择Ubuntu 18.04 LTS作为我的WSL发行版。 我已经设置了所有正确的设置,以在Docker Desktop中启用WSL 2,并且能够运行像这样的命令而没有问题。 但是,当我尝试运行

  • 问题内容: 我有一个运行Ubuntu的Docker容器,其操作如下: 但是它似乎没有。例如 我需要安装吗? 似乎缺少了一个非常基本的命令。我试过不报告任何内容。 问题答案: Docker镜像非常小,但是您可以通过以下方式在您的官方ubuntu Docker镜像中安装: 您可能不需要图像,而只是想将其用于测试目的。上面的例子将帮助您。 但是,如果需要ping才能存在于映像中,则可以创建一个或容器,将

  • 问题内容: 我有两个类Owning和OwningAccessor。这些文件位于同一目录中。 尝试使用进行编译时,出现编译错误。 这怎么了 该代码在Eclipse IDE下可以正常编译。 问题答案: 好的,假设您将代码分发到文件中,如下所示 转到命令提示符,然后将目录更改为。在那里,发出以下命令: 我刚刚对其进行了测试,并且效果很好。您编译的类将位于以下文件夹中: 编译一个类将触发所有其他依赖类的编

  • 我正在使用MySQL,我正在定义一个存储过程,如下所示: 当我尝试执行该过程时,会出现以下错误: 这意味着什么,我做错了什么?

  • 问题内容: 我只是想快速测试一下。所以我运行了一个Docker容器,我想查看我正在运行哪个版本: 所以我尝试安装它(如此处建议): 有人知道为什么这不起作用吗? 问题答案: 似乎未安装lsb_release。 您可以通过安装 希望能有所帮助;)