Windows 10 安装 Decker Desktop
安装
Docker 官网提供了 Windows 10 平台下的 Docker Desktop 的安装教程: docker-for-windows 。
同时微软也提供 安装 WSL 1 与更新到 WSL 2 文档。
这两份文档,请一起进行参考。
安装子系统
-
打开 Microsoft Store ,搜索
Ubuntu
、Debian
等主流的 Linux 系统发行版并安装。 -
安装完后,可以在菜单中搜索
Ubuntu
等信息,或者在 PowerShell 中输入ubuntu
并用Tab
键补全。
注意:如果没有打开 “适用于 Linux 的 Windows 子系统” 功能,则会报错。
子系统安装 Docker
- 请参考: [系列] Docker 入门 。该系列包含了安装、学习以及实践。
添加用户组
在子系统中将读者初始化时的用户加入 docker
用户组。[USER]
为读者的初始化时的用户名。
sudo adduser [USER] docker
重启计算机,并执行与子系统中执行:
sudo service docker start
配置 WSL 2
-
在 “Windows 设置” 中搜索 “启用或关闭 Windows 功能” ,开启 “适用于 Linux 的 Windows 子系统” 和 “虚拟机平台” ,等待安装,重启计算机。
-
在管理员权限的 PowerShell 中,输入指令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
提示:
Enable-WindowsOptionalFeature: Microsoft-Windows-Subsystem-Linux Running [oooooooooo ] # 随后刷新为 Path : Online : True RestartNeeded : False
重启计算机。
-
输入指令将子系统配置为 WSL 2,可能会遇到错误请看下一小点:
wsl --set-version [SUBSYSTEM NAME] [版本号]
示例:
wsl --set-version Ubuntu-20.04 2
可以使用
wsl -l -v
来查看子系统分发的详细信息。PS C:\Users\xxxxx> wsl -l -v NAME STATE VERSION * Ubuntu-20.04 Stopped 2
-
由于 Windows 10 默认开启 WSL 后为 1 版本,使用 2 版本大部分情况下会提示:
WSL 2需要更新其内核组件。有关信息,请访问https://aka.ms/wsl2kernel 有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
前往 微软 - 适用于 Linux 的 Windows 子系统安装指南 (Windows 10) 进行 步骤 4 - 下载 Linux 内核更新包 。
安装重启即可。
-
设置 WLS 2 占用,在任务管理器表现为
Vemmem
占用过大,默认一般为 2G 左右。- 按下Windows + R 键,输入
%UserProfile%
并运行进入用户文件夹 - 新建文件
.wslconfig
,输入如下配置保存:
[wsl2] memory=2GB swap=0 localhostForwarding=true
memory
为 WSL 2 内存上限,swap
为交换分区,可自行配置。管理员权限 PowerShell 中输入
wsl --shutdown
来关闭当前的子系统和 WSL 内存占用。 - 按下Windows + R 键,输入
启动 Docker Desktop
弹窗 Error
System.InvalidOperationException:
Failed to set version to docker-desktop: exit code: -1
若提示以上信息,这里有两种方法。
临时解决
netsh winsock reset
长期解决
本小点以下引用内容由网络搜集,并未尝试,请注意信息数据安全。
下载NoLsp(需要使用VPN等)
下载的文件建议放在
C:\Windows\System32
下,也可以随便放,位置你知道就行,如果不是 NoLsp.exe 建议重命名一下,当前也可以不重命名,使用方便就行了。管理员权限下 PowerShell 中输入:
NoLsp.exe c:\windows\system32\wsl.exe
如果不对,肯定是路径不对。
若成功,提示:
Success!
。右键 Docker Desktop 重启即可。
更多问题
蓝屏
说到底,通过 WSL 2 安装 Docker Desktop 还是使用 Hyper-V 的技术,所以一切可能和 Hyper-V 产生冲突的虚拟机技术都会产生各种各样的问题。
比如我是不想要将项目在多个平台之间重复移动,想要在一台主机上完成多个平台上项目的适配,但是安上没一会儿我就卸载了 Docker Desktop ,关闭了 “启用或关闭 Windows 功能” 中的 “虚拟机平台” 功能。
原因是使用它导致了电脑出现蓝屏等问题。
我平时是不使用手机玩游戏的,这种做法有着耗电高、续航差等等的缺点,所以一直都是使用 mumu 手游助手(沙盒化的安卓模拟器)玩些手游。但是安装好 Docker Desktop 后,却与模拟器功能冲突:
很抱歉,检测到您尚未关闭 “Hyper-V”
会引起电脑蓝屏等问题,点击下方按钮查看解决办法
所以我终究还是卸载了 Docker Desktop 只保留下了的子系统。