Dut*_*h77 34 docker windows-subsystem-for-linux docker-desktop docker-daemon wsl-2
这是我的设置:
Windows 10 PRO - build 19041.153
- 内部程序 - 慢环Ubuntu 18.04LTS
WSL2 模式下的子系统Docker for desktop 2.2.0.4
- 启用与我的 Ubuntu 子系统的 WSL2 集成我目前被迫使用Windows进行开发,所以我成为了microsoft Insider成员并以WSL2模式安装了ubuntu。Docker 桌面支持 WSL2 的集成,所以我尝试了......一周以来它完美无缺。今天电脑重启后,我无法再次运行docker。Ubuntu 可以看到从 Docker 桌面注入的二进制文件,但它无法再连接到 Windows 托管的 docker 守护进程。
当我调用 subsys 终端时,docker info
它返回
$ docker info
Client:
Debug Mode: false
Server:
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
errors pretty printing info
Run Code Online (Sandbox Code Playgroud)
或与 docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
Run Code Online (Sandbox Code Playgroud)
我已经尝试过的:
DOCKER_HOST=localhost:2375
, DOCKER_HOST=tcp://localhost:2375
, DOCKER_HOST=127.0.0.1:2375
, DOCKER_HOST=tcp://127.0.0.1:2375
=>等 envs 公开没有 TLS 的守护进程我真的,真的需要这个来工作。感谢您的任何想法。最奇怪的是它昨天有效,从那时起我没有对系统进行任何更改......
Pat*_*cio 56
我知道这对于目前的问题可能已经过时,但这应该可以为我们节省宝贵的时间,尤其是当 Windows 20H1=2004 将于本月(2020 年 5 月)投入生产时。
操作系统版本:Windows 10 教育版(与企业版相同,是专业版的超集)。
版本:2004
内部版本(操作系统版本):19041.264
其他:Windows 功能体验包 120.2202.130.0。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Shell : WSL Terminal
首先,我之前安装了WSL v1,然后执行升级到WSL v2 的过程,并显示此错误:“错误:无法连接到 tcp://localhost:2375 处的 Docker 守护程序。docker 守护程序是否正在运行?”。
其次,为了解决这个问题,我按照此处说明的说明进行操作:Link,并且它起作用了。
第三,经过一些测试,我认为升级中缺少的更改是从 shell 的启动脚本中删除了 DOCKER_HOST 变量。
总结:就我而言,永久修复程序应遵循以下步骤:
1.测试是否是您取消设置 DOCKER_HOST 变量的情况(见下图)。
2.如果错误在上一步中消失,那么是时候修复更改,删除 shell 启动脚本中 DOCKER_HOST 变量的设置(在我的情况下是$HOME/.bashrc)。
评论了这个:
#export DOCKER_HOST=tcp://localhost:2375
#export DOCKER_BUILDKIT=1
注意:还包括 DOCKER_BUILDKIT。
3.关闭并打开终端。
小智 32
在 Docker 桌面应用程序上,我必须手动启用我的发行版集成
Settings > Resources > WSL Integration
Run Code Online (Sandbox Code Playgroud)
小智 23
如果它可以帮助遇到此问题的其他任何人,那么对我来说,结果是我的子系统突然(并且“自行”)在 docker 的 RESOURCES > WSL INTEGRATION 设置中被勾选。
Yag*_*rea 14
我尝试过很多东西,以及对我有用的东西,但没有人提到要尝试:
(来自 Windows Powershell)
wsl --set-default <my-distro>
Run Code Online (Sandbox Code Playgroud)
然后在那里,我可以连接到 docker 而无需更改DOCKER_HOST
var。
Nag*_*gev 13
我已经按照建议安装了适用于 Windows 的 Docker,以便将其与WSL 2一起使用,这确实会为您启动 docker 守护进程。但我不需要它提供的所有奇特功能,因此将其删除,并很高兴看到释放了大约 4GB 空间,并且系统托盘中没有额外的图标。
现在,如果我需要运行 docker 命令,我只需开始:
sudo dockerd &
Run Code Online (Sandbox Code Playgroud)
这样我就可以让它在同一个 shell 的后台运行。请注意,在本示例中我的设置sudo
没有密码。如果需要密码,我可以sudo dockerd
打开另一个终端选项卡。
尽管这是一种快速的临时解决方案,但我发现它会导致网络问题,因此我不推荐它,而更喜欢使用轻型虚拟机。
小智 10
1.打开Windows docker桌面-->设置-->常规-->在没有TLS的情况下禁用在tcp://localhost:2375上公开守护进程
2.然后转到设置 --> 资源 --> WSL 集成 --> 取消选中启用与我的默认 WSL 发行版的集成并关闭与发行版的集成
3.点击应用并重启
4.然后去ubuntu试试docker ps
docker ps
如果不行的话继续运行以下命令
unset DOCKER_HOST
禁用DOCKER_HOST
今天我刚刚尝试成功
祝你好运
归档时间: |
|
查看次数: |
31816 次 |
最近记录: |