Docker for Windows和WSL1协同工作
完全相同的问题 但我的要求不同——我想Docker for Windows和WSL1协同工作,docker,windows-subsystem-for-linux,Docker,Windows Subsystem For Linux,完全相同的问题 但我的要求不同——我想 坚持使用WSL1(出于本主题以外的原因) 并按原样使用Docker for Windows 也就是说,我有WSL1和Docker for Windows并行安装。这是我当前的信息: C:> ver Microsoft Windows [Version 10.0.18363.1379] C:> wsl -l -v NAME STATE VERSION * Debian Running
- 坚持使用WSL1(出于本主题以外的原因)
- 并按原样使用Docker for Windows
C:> ver
Microsoft Windows [Version 10.0.18363.1379]
C:> wsl -l -v
NAME STATE VERSION
* Debian Running 1
我在“资源->WSL集成”中没有看到集成,在Docker桌面设置中也没有启用WSL2后端
只是我遇到了上面的问题——我的docker
可以在任何地方工作,在CMD、Powershell、git bash等中,只是不在我的WSL中
我找到的所有解决方案都是在WSL1或WSL2中安装Docker for Windows,但我希望保持一切原样--WSL和Docker for Windows并行安装
有什么解决办法吗
在此WSL 1发行版中找不到命令“docker”。我们建议将此发行版转换为WSL 2并激活
Docker桌面设置中的WSL集成 这意味着在
WSL2
中,它有一个安装docker守护程序所需的真正linux内核,然后在docker desktop
中,您可以有机会在WSL2
中设置docker守护程序。否则,docker守护程序将在Hyper-V机器中运行。但是,如果您坚持使用WSL1
,就没有机会在WSL中运行docker守护程序
,因此唯一的选项是在Hyper-V机器
中运行docker守护程序
虽然以上是事实,但我们仍然有机会让您在WSL1
bash中操作docker ps、docker pull
等,就像您通过CMD、Powershell、git bash
操作一样
对于您的情况,接下来的步骤可能是:
1。将docker desktop中的docker daemon作为下一步公开,然后单击应用并重新启动
:
$ wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.5.tgz
$ tar zxvf docker-20.10.5.tgz
$ cd docker
$ export DOCKER_HOST=tcp://localhost:2375
$ ./docker info
2。在WSL1中安装独立docker客户端:
$ wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.5.tgz
$ tar zxvf docker-20.10.5.tgz
$ cd docker
$ export DOCKER_HOST=tcp://localhost:2375
$ ./docker info
3。设置默认docker守护程序:
$ wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.5.tgz
$ tar zxvf docker-20.10.5.tgz
$ cd docker
$ export DOCKER_HOST=tcp://localhost:2375
$ ./docker info
4。验证docker客户端命令:
$ wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.5.tgz
$ tar zxvf docker-20.10.5.tgz
$ cd docker
$ export DOCKER_HOST=tcp://localhost:2375
$ ./docker info
只是FTA,这是我在尝试自己解决问题时发现的快速黑客解决方法 将
C:\Program Files\Docker\Docker\resources\bin\Docker
文件更改为
#!/usr/bin/env sh
#
# Copyright (c) Docker Inc.
binary=$(basename "$0")
"$binary.exe" "$@"
然后,docker
现在可以在任何地方工作,在CMD
、Powershell
、gitbash
以及WSL1
中
请注意,此黑客解决方法专门针对OP中描述的情况,可能不适用于其他任何情况。是否在Docker桌面设置中取消选中WSL2后端?这样你就可以使用Hyper-V了backend@im_baby,我现在认为我没有WSL2。请参阅我的最新问题。