suk*_*uki 42 docker windows-subsystem-for-linux
$ docker在此 WSL 1 发行版中找不到该命令。我们建议将此发行版转换为 WSL 2 并在 Docker 桌面设置中激活 WSL 集成。
有关详细信息,请参阅https://docs.docker.com/docker-for-windows/wsl/。
无法更改为 WSL2 且无法安装 docker:
pus*_*ack 62
您需要转到 docker 桌面设置,并在“资源 - > WSL 集成”中启用与您的发行版的集成。
joe*_*uch 57
假设您的系统中已经有 wsl 2,请以管理员身份运行 powershell:
runwsl --list --verbose它将为您提供 wsl 运行进程的列表:
> wsl --list --verbose
NAME STATE VERSION
Ubuntu-20.04 Running 1
Run Code Online (Sandbox Code Playgroud)
然后将其切换为 wsl --set-version <your proc> 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.
Run Code Online (Sandbox Code Playgroud)
Fab*_*ira 31
尽管自安装以来已经启用了集成 WSL,但我的问题似乎是一样的。
在 Windows 外壳中:
> 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.
Run Code Online (Sandbox Code Playgroud)
解决此问题的一个选项是重新安装 Docker 桌面(https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/configure-docker-daemon#how-to-uninstall-docker),但不要不需要这样做。
以下步骤对我有用(我在https://github.com/docker/for-win/issues/7039找到)。
打开 windows shell(可能以管理员身份),然后运行:
> wsl -t docker-desktop
> wsl --shutdown
> wsl --unregister docker-desktop
Run Code Online (Sandbox Code Playgroud)
然后转到 windows 服务,停止 Docker 桌面服务,或者以管理员身份在 windows shell 中运行命令来执行此操作:
> Stop-Service -Name "com.docker.service"
Run Code Online (Sandbox Code Playgroud)
最后,重新启动 Docker 桌面应用程序。
在 windows shell 中测试:
> wsl docker --version
Docker version 20.10.2, build 2291f61
Run Code Online (Sandbox Code Playgroud)
小智 20
删除 Ubuntu 18.04 并安装 20.04 后,我遇到了这个错误。
即使启用了 WSL 2,我仍然面临这个错误。
这对我有用,进入设置 --> 资源并切换“Ubuntu”,然后错误消失:)
小智 15
wsl对我来说,在终端中运行以下命令是有效的:
sudo apt-get update
apt-cache policy docker-ce
sudo apt-get install -y docker-ce
sudo apt-get install docker-compose
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
来源: https: //www.srcmake.com/home/fabric
小智 12
对我来说,没有任何效果,除了:右键单击正在运行的 Docker 图标(时钟旁边)并选择“切换到 Linux 容器”
现在我们开始 !现在我可以使用菜单“设置”>“资源”>“WSL 集成”。
资源下的 WSL 集成没有向我显示。
我必须在常规设置下取消选中“使用基于 WSL2 的引擎”,然后应用,然后再次选中它,应用,然后 WSL 集成就会显示在资源下,我可以单击 Ubuntu 滑块。
对于那些仍然有问题的人来说,我的一些符号链接神奇地消失了,并且重新安装也没有任何帮助。
确保 WSL2 安装中有以下符号链接:
$ ls -l /usr/bin/ | grep docker
lrwxrwxrwx 1 root root 56 Jul 14 13:01 com.docker.cli -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/com.docker.cli
lrwxrwxrwx 1 root root 48 Jul 14 13:01 docker -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker
lrwxrwxrwx 1 root root 56 Jul 14 13:01 docker-compose -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker-compose
lrwxrwxrwx 1 root root 59 Jul 14 13:01 docker-compose-v1 -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker-compose-v1
lrwxrwxrwx 1 root root 71 Jul 14 13:01 docker-credential-desktop.exe -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker-credential-desktop.exe
lrwxrwxrwx 1 root root 50 Jul 14 13:01 hub-tool -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/hub-tool
lrwxrwxrwx 1 root root 48 Jun 29 09:27 notary -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/notary
Run Code Online (Sandbox Code Playgroud)
我遇到了这个问题,对于我来说
$ ls -l /usr/bin/ | grep docker
Run Code Online (Sandbox Code Playgroud)
根据这个答案显示了所有正确的符号链接,但是我看到了以下内容:
which docker
/mnt/c/Program Files/Docker/Docker/resources/bin/docker
Run Code Online (Sandbox Code Playgroud)
解决方法是简单地将PATH变量设置为/user/bin第一个条目
PATH="/usr/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
从众多答案来看,似乎有很多因素可能导致此错误,因此您的情况可能会有所不同。
另一件需要检查的好事情是 Docker Desktop 是否实际运行。如果不是,which docker将产生/mnt/c/...上述目录。
正如 Taylor 在评论中所写,您需要从 WSL 连接到 docker 桌面。
在您附加的图像中有一个复选框expose daemon on ...
选中此框。
现在你需要 docker cli,你可以安装 Linux 虚拟机,然后在刚刚安装的 Linux 虚拟机中安装 docker。
然后运行which docker该文件并将其复制到您的 Windows 计算机。
将 docker 可执行文件复制到/usr/local/binWSL 上。
现在在 WSL 中运行以下命令
echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc
. ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
这对我在 WSL 1 上有用。
| 归档时间: |
|
| 查看次数: |
44450 次 |
| 最近记录: |