Docker Desktop - Unexpected WSL error An unexpected error was encountered 相关问题的解决

最近刚刚开始学习dockerDesktop,遇到了这样一个错误,折腾了半天,终于解决可以正常使用了

首先报错如下

Docker Desktop - Unexpected WSL error An unexpected error was encountered while executing a WSL command. Common causes include access rights issues, which occur after waking the computer or not being connected to your domain/active directory. Please try shutting WSL down (wsl --shutdown) and/or rebooting your computer. lf not sufficient, WSL may need to be reinstalled fully. As a last resort, try to uninstall/reinstall Docker Desktop. lf the issue persists please collect diagnostics and submit an issue ...://docs.docker.com/desktop/troubleshoot/overview/#diagnose-from-the-termin. Quit Diagnose & Feedback Reset Docker to factory defaults

在国内网站上没有解决问题,然后去stackoverflow上找了找,发现了解决问题的方法,原帖链接如下

原stackoverflow相关问题解答

首先你需要确保你cpu开启了虚拟化,并且开启了以下功能

Docker Desktop - Unexpected WSL error An unexpected error was encountered 相关问题的解决_第1张图片

这是有用的那个回答的翻译截图,docker desktop之所以报错是因为本地缺少linux发行版本(博主使用了unbutu,为了避免更多意外状况,后边我也就选择了使用unbntu)

Docker Desktop - Unexpected WSL error An unexpected error was encountered 相关问题的解决_第2张图片

在我使用

wsl -l -v

命令时发现我的电脑上没有任何linux发行版本

然后我试着从micosoft store上下载ubuntu,但是下载完之后打开之后

遇到了新的问题

Ubuntu is already installed. Launching Ubuntu... Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x80370102 Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the...

然后在csdn上找到了这个问题的解决办法,原帖如下

https://blog.csdn.net/qq_42650988/article/details/105500851

解决办法就是以管理员身份打开powershell,运行

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

然后再打开ubuntu就没问题了,

此时使用wsl -l -v查询Linux发行版本就可以看到ubuntu了,

再设置一下windows子系统的默认发行版本

wsl --set-default ubuntu

然后再打开docker desktop,就可以正常使用了

随感

最近在学习一个开源物联网项目jetlinks,从项目的开发文档中了解到了Docker Desktop,觉得这是一个非常不错的工具,可以直接在linux操作系统以外的地方使用docker(包括windows和mac),当然这一特性也得益于docker的特性和设计思想,比如容器运行是与外界隔离的(外界的环境不会影响容器运行),有一些项目部署就可以直接在win本地跑起来了,不需要再使用虚拟机损失那么多性能了,在这个地方花费了那么长时间,所以也做一个简单的复盘总结

什么是wsl

Windows Subsystem for Linux (WSL) 是一个在 Windows 10 上运行 Linux 程序和工具的兼容层。它提供了在 Windows 系统上创建和管理 Linux 发行版的功能。

当你安装 WSL 后,你可以从 Microsoft Store 下载和安装不同的 Linux 发行版,如 Ubuntu、Debian、Fedora 等。这些 Linux 发行版被称为 WSL 分发版本,它们是在 WSL 环境中运行的实际 Linux 系统。

wsl和我安装的Ubuntu等linux发行版是什么关系

WSL 分发版本是一个完整的 Linux 环境,包括 Linux 内核、用户空间工具和软件包。通过启动 WSL 分发版本的终端,你可以进入一个基于 Linux 的环境,在其中运行 Linux 命令行工具、脚本和应用程序。

WSL 提供了与 Windows 系统的集成,包括访问 Windows 文件系统、与 Windows 应用程序的互操作性以及使用 Windows 上的开发工具和编辑器进行开发等功能。这使得开发人员和系统管理员可以在 Windows 环境中轻松地使用 Linux 的功能和工具,而无需进行虚拟机或双启动。

因此,WSL 是一种让 Windows 和 Linux 环境能够共存和互操作的技术,而你安装的 Linux 发行版则是在 WSL 环境中运行的实际 Linux 系统。

 

你可能感兴趣的:(docker,容器,运维)