zoukankan      html  css  js  c++  java
  • Windows 10 安装 Decker Desktop

    安装

    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 只保留下了的子系统。

    更多参考

  • 相关阅读:
    HTML5定位功能,实现在百度地图上定位
    很好用的API管理--Swagger
    依赖注入原理---IoC框架
    c# asp.net 修改webconfig文件 配置
    逗比的快钱支付
    MVC 5限制所有HTTP请求必须是POST方式
    富头像上传编辑器----很好用的上传照片和拍照功能
    .NET中的DES对称加密
    无聊搭1个框架
    PHP高效率写法
  • 原文地址:https://www.cnblogs.com/Yogile/p/15001792.html
Copyright © 2011-2022 走看看