出现的问题

在Windows下使用wsl -d ubuntu连接Linux后,使用which docker可以获取在windos下的地址,而使用docker命令则提示

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/

解决方法

1.原理:Ubuntu系统中没有Docker CLI,需要手动安装一下。Docker Desktop 仅提供 Docker Daemon(后端),但 WSL 里仍然需要一个 docker CLI(前端)来调用 Daemon。WSL 里 docker 命令应该:

  1. 通过 Docker CLI(在 /usr/bin/docker)
  2. 与 Windows 端的 Docker Daemon 通信(而不是运行自己的 Daemon)

但如果 WSL 里 没有 Docker CLI,你就只能调用 Windows 版的 /mnt/c/…/docker,这通常会导致 docker 运行失败(因为 Windows 版 CLI 可能不能直接在 WSL 里工作)。如果 Docker Desktop 已正确启用 WSL 2 集成,但 docker 命令仍然不可用,你可以在 WSL 里安装 Docker CLI:

sudo apt update
sudo apt install -y docker-ce-cli

⚠️ 注意:

只安装 CLI,不安装 Daemon(不需要 docker-ce 或 docker.io,因为 Docker Desktop 自带 Daemon)。
这样,docker 命令就可以 通过 WSL 里的 CLI 连接 Windows 端的 Docker Desktop。

安装后,检查是否成功:

docker --version

如果返回 Docker version x.x.x,说明 CLI 已正确安装。

如果安装时提示

Unable to locate package docker-ce-cli

则说明没有docker的源,需要配置一下,具体步骤如下:
步骤 1:更新并安装必要的依赖项

首先,更新你的包索引并安装一些必要的依赖项:

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

步骤 2:添加 Docker 的官方 GPG 密钥
接下来,添加 Docker 的官方 GPG 密钥,这样 Ubuntu 就能够验证 Docker 的包:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

步骤 3:添加 Docker 仓库
然后,添加 Docker 的官方仓库地址:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

步骤 4:更新包索引

添加完仓库后,更新包索引:

sudo apt update

步骤 5:安装 Docker CLI

现在,你可以尝试安装 Docker CLI(如果只需要 CLI,而不是 Daemon):

sudo apt install docker-ce-cli

步骤 6:确认安装

安装完成后,确认 docker 是否已正确安装:

docker --version

这应该会返回 Docker 的版本信息,说明安装成功。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐