• 周六. 10月 8th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

Windows 10 安装 Decker Desktop

admin

11月 28, 2021

安装

Docker 官网提供了 Windows 10 平台下的 Docker Desktop 的安装教程: docker-for-windows

同时微软也提供 安装 WSL 1 与更新到 WSL 2 文档。

这两份文档,请一起进行参考。

安装子系统

  1. 打开 Microsoft Store ,搜索 UbuntuDebian 等主流的 Linux 系统发行版并安装。

  2. 安装完后,可以在菜单中搜索 Ubuntu 等信息,或者在 PowerShell 中输入 ubuntu 并用 Tab 键补全。

注意:如果没有打开 “适用于 Linux 的 Windows 子系统” 功能,则会报错。

子系统安装 Docker

添加用户组

在子系统中将读者初始化时的用户加入 docker 用户组。[USER] 为读者的初始化时的用户名。

sudo adduser [USER] docker

重启计算机,并执行与子系统中执行:

sudo service docker start

配置 WSL 2

  1. 在 “Windows 设置” 中搜索 “启用或关闭 Windows 功能” ,开启 “适用于 Linux 的 Windows 子系统” 和 “虚拟机平台” ,等待安装,重启计算机。

  2. 在管理员权限的 PowerShell 中,输入指令:

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

    提示:

    Enable-WindowsOptionalFeature: Microsoft-Windows-Subsystem-Linux                                                           Running                                                                                                                 [oooooooooo                                                                                                  ] 
    
    # 随后刷新为
    Path          :
    Online        : True
    RestartNeeded : False
    

    重启计算机。

  3. 输入指令将子系统配置为 WSL 2,可能会遇到错误请看下一小点:

    wsl --set-version [SUBSYSTEM NAME] [版本号]
    

    示例:

    wsl --set-version Ubuntu-20.04 2
    

    可以使用 wsl -l -v 来查看子系统分发的详细信息。

    PS C:Usersxxxxx> wsl -l -v
      NAME            STATE           VERSION
    * Ubuntu-20.04    Stopped         2
    
  4. 由于 Windows 10 默认开启 WSL 后为 1 版本,使用 2 版本大部分情况下会提示:

    WSL 2需要更新其内核组件。有关信息,请访问https://aka.ms/wsl2kernel 
    有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
    

    前往 微软 – 适用于 Linux 的 Windows 子系统安装指南 (Windows 10) 进行 步骤 4 – 下载 Linux 内核更新包

    安装重启即可。

  5. 设置 WLS 2 占用,在任务管理器表现为 Vemmem 占用过大,默认一般为 2G 左右。

    • 按下Windows + R 键,输入 %UserProfile% 并运行进入用户文件夹
    • 新建文件 .wslconfig ,输入如下配置保存:
    [wsl2]
    memory=2GB
    swap=0
    localhostForwarding=true
    

    memory 为 WSL 2 内存上限, swap 为交换分区,可自行配置。

    管理员权限 PowerShell 中输入 wsl --shutdown 来关闭当前的子系统和 WSL 内存占用。

启动 Docker Desktop

弹窗 Error

System.InvalidOperationException:
Failed to set version to docker-desktop: exit code: -1

若提示以上信息,这里有两种方法。

临时解决

netsh winsock reset

长期解决

本小点以下引用内容由网络搜集,并未尝试,请注意信息数据安全

  1. 下载NoLsp(需要使用VPN等)

    http://www.proxifier.com/tmp/Test20200228/NoLsp.exe

  2. 下载的文件建议放在 C:WindowsSystem32 下,也可以随便放,位置你知道就行,如果不是 NoLsp.exe 建议重命名一下,当前也可以不重命名,使用方便就行了。

    管理员权限下 PowerShell 中输入:

    NoLsp.exe c:windowssystem32wsl.exe
    

    如果不对,肯定是路径不对。

    若成功,提示: Success!

  3. 右键 Docker Desktop 重启即可。

更多问题

蓝屏

说到底,通过 WSL 2 安装 Docker Desktop 还是使用 Hyper-V 的技术,所以一切可能和 Hyper-V 产生冲突的虚拟机技术都会产生各种各样的问题。

比如我是不想要将项目在多个平台之间重复移动,想要在一台主机上完成多个平台上项目的适配,但是安上没一会儿我就卸载了 Docker Desktop ,关闭了 “启用或关闭 Windows 功能” 中的 “虚拟机平台” 功能。

原因是使用它导致了电脑出现蓝屏等问题。

我平时是不使用手机玩游戏的,这种做法有着耗电高、续航差等等的缺点,所以一直都是使用 mumu 手游助手(沙盒化的安卓模拟器)玩些手游。但是安装好 Docker Desktop 后,却与模拟器功能冲突:

很抱歉,检测到您尚未关闭 “Hyper-V”
会引起电脑蓝屏等问题,点击下方按钮查看解决办法

image-20210711214711765

所以我终究还是卸载了 Docker Desktop 只保留下了的子系统。

更多参考

发表回复

您的电子邮箱地址不会被公开。