win10安装docker

    WSL: The W indows Subsystem for Linux lets developers run a GNU/Linux environment -- including most command-line tools, utilities, and applications -- directly on Windows, unmodified, without the overhead of a traditional virtual machine or dualboot setup

docs.microsoft.com/zh-cn/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package

当使用 Hyper-V 时,某些第三方应用程序无法工作,这意味着当启用了 WSL 2 时,这些应用程序(如 VMware 和 VirtualBox)将无法运行。   但最近,VirtualBox 和 VMware 都发布了支持 Hyper-V 和 WSL2 的版本。

    微软推出了 WSL (Windows Subsystem for Linux),该工具相当于一个运行在 Windows 下面的 Linux 子系统,这让 Windows 和 Linux 之间的环境界限变得更加不明显了,特别是 WSL2 版本推出以后,完全具有了在 WSL2 中运行 Docker 的能力了,所以现在我们几乎可以无缝地在 WSL2 上面运行 Kubernetes。

1、 适用于 Linux 的 Windows 子系统可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。

  • 在 Microsoft Store 中选择你偏好的 GNU/Linux 分发版。
  • 运行常用的命令行软件工具(例如  grepsedawk)或其他 ELF-64 二进制文件。
  • 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括:
    • 工具:vim、emacs、tmux
    • 语言: NodeJS、Javascript、 Python、Ruby、C/ C++、C# 与 F#、Rust、Go 等。
    • 服务:SSHD、 MySQL、Apache、lighttpd、 MongoDBPostgreSQL
  • 使用自己的 GNU/Linux 分发包管理器安装其他软件。
  • 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
  • 在 Windows 上调用 GNU/Linux 应用程序。

2、 将适用于 Linux 的 Windows 子系统从 WSL 1 升级到 WSL 2 的主要区别和优势是:

  • 提高文件系统性能
  • 支持完全的系统调用兼容性

WSL 2 使用最新、最强大的虚拟化技术在轻量级实用工具虚拟机 (VM) 中运行 Linux 内核。  但是,WSL 2 不是传统的 VM 体验。

    WSL 2 仅适用于 Windows 10 版本 1903、内部版本 18362 或更高版本。   通过按 Windows 徽标键 + R,检查你的 Windows 版本,然后键入  winver,选择“确定”。   (或者在 Windows 命令提示符下输入  ver 命令)。 低于 18362 的版本根本不支持 WSL

3、下载安装Docker Desktop Installer.exe

hub.docker.com/editions/community/docker-ce-desktop-windows

由于( Requires Microsoft Windows 10 Professional or Enterprise 64-bit, or Windows 10 Home 64-bit with WSL 2)按提示下载安装

wsl_update_x64.msi

4、The Hyper-V role  cannot  be installed on Windows 10  Home

docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

Enable Hyper-V using PowerShell:

在powershell以管理员权限执行:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

然后按提示重启系统。查看服务显示:

之前的服务状态是:

5、开启角色(创建虚拟机需要,docker不知是否需要)

6、Windows Subsystem for Linux (WSL)2引入了一个重要的体系结构更改,因为它是由Microsoft构建的完整Linux内核, 允许Linux容器在没有仿真的情况下本机运行。随着Docker Desktop在WSL2上运行,用户可以利用Linux工作区, 避免同时维护Linux和Windows构建脚本。此外,WSL2还改进了文件系统共享、引导时间,并允许Docker桌面用户访问一些很酷的新功能。Docker Desktop使用WSL 2中的动态内存分配功能,极大地提高了资源消耗。这意味着,Docker Desktop只使用所需的CPU和内存资源,同时使CPU和内存密集型任务(如构建容器)运行得更快。此外,使用wsl2,冷启动后启动Docker守护程序所需的时间要快得多。启动Docker守护进程所需时间不到10秒,而在以前版本的Docker Desktop中,这一时间几乎为1分钟。

7、PS C:\Users\mi_zy> wsl --list --verbose

  NAME                   STATE           VERSION

* docker-desktop         Running         2

  docker-desktop-data    Running         2

  Ubuntu                 Running         2

8、参见:docs.microsoft.com/zh-cn/windows/wsl/install-win10

a)、简化安装(预览版):要使用  wsl --install 简化安装命令,你需要加入   Windows 预览体验计划  并安装 Windows 10 的预览版(OS 版本 20262 或更高版本),但不需要执行手动安装步骤。   只需使用管理员权限打开命令窗口并运行  wsl --install,重启后即可使用 WSL。

b)、手动安装: WSL 的手动安装6个步骤,可按这些步骤在任意版本的 Windows 10 上安装 Linux,详见链接。

8.1、启用WSL2( 适用于 Linux 的 Windows 子系统 只能在系统驱动器(通常是  C: 驱动器)中运行   请确保分发版存储在系统驱动器上

PS C:\windows\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

部署映像服务和管理工具

版本: 10.0.19041.746

映像版本: 10.0.19042.804

启用一个或多个功能

[==========================100.0%==========================]

操作成功完成。

8.2、检查运行 WSL 2 的要求: 若要更新到 WSL 2,需要运行 Windows 10对于 x64 系统: 版本 1903  或更高版本,采用  内部版本 18362  或更高版本(运行:systeminfo命令,本机Microsoft Windows 10 专业版OS 版本:  10.0.19042 暂缺 Build 19042;Hyper-V 要求:     已检测到虚拟机监控程序。将不显示 Hyper-V 所需的功能。)

8.3、启用虚拟机功能:dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

8.4、见本文步骤3,下载 Linux 内核更新包: wsl_update_x64.msi

8.5、将 WSL 2 设置为默认版本:wsl --set-default-version 2

8.6、安装所选的 Linux 分发, 打开  Microsoft Store ,并选择偏好的 Linux 分发版( Ubuntu 20.04.2 LTS), 首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。   未来的所有启动时间应不到一秒。 然后,需要 为新的 Linux 分发版创建用户帐户和密码 更新包目录并使用分发版的首选包管理器升级已安装的包:sudo apt update && sudo apt upgrade

8.7、安装 Windows 终端(可选)

    Windows 终端可启用多个选项卡(在多个 Linux 命令行、Windows 命令提示符、PowerShell 和 Azure CLI 等之间快速切换)、创建键绑定(用于打开或关闭选项卡、复制粘贴等的快捷方式键)、使用搜索功能,以及使用自定义主题(配色方案、字体样式和大小、背景图像/模糊/透明度)。

*:将分发版版本设置为 WSL 1 或 WSL 2

使 WSL 2 成为你的默认体系结构, 这会将安装的任何新分发版的版本设置为 WSL 2,可以通过此命令执行该操作:wsl --set-default-version 2

9、 若要开始使用 Docker 和 WSL 2 来开发应用,我们建议使用 VS Code,以及 WSL 扩展和 Docker 扩展。

VSCodeUserSetup-x64-1.53.2.exe;

Remote-WSL:Remote Development - Visual Studio Marketplace:除了远程 SSH 和远程容器扩展外,此扩展包还包括远程 WSL 扩展,使你能够打开容器、远程计算机或 WSL 中的任何文件夹。 此扩展使你能够在 VS Code 中打开在 WSL 上运行的 Linux 项目, (无需担心路径问题、二进制兼容性或) 的其他跨操作系统挑战。

Remote - Containers extension:此扩展使你能够在容器中打开你的项目文件夹或存储库,利用 Visual Studio Code 的完整功能集来完成容器中的开发工作;

Docker extension:   此扩展添加了从 VS Code 内部生成、管理和部署容器化应用程序的功能。   (需要 Remote-Container 扩展,才能实际使用容器作为开发环境。 )

10、安装 Git For Windows:Git-2.30.1-64-bit.exe

11、Docker Desktop可以在Windows containers和Linux containers之间切换。


12、实操记录:初始安装的win10专业版系统(版本20H2,内部版本 19042.867),开启Windows功能:“WSL”:适用于Linux的Windows子系统

PS C:\WINDOWS\system32> wsl --list --verbose

适用于 Linux 的 Windows 子系统 没有已安装的分发版

可以通过访问 Microsoft Store 来安装分发版:

Windows  store安装Ubuntu后,显示分发版 VERSION:1

PS C:\WINDOWS\system32> wsl --list --verbose

  NAME      STATE           VERSION

* Ubuntu    Running         1

!(此时,ASTERIX Analyzer、receiver和RadarAnalizer均运行正常)
13、然后,安装适用于 x64 计算机的 WSL2 Linux 内核更新包wsl_update_x64, 若要更新到 WSL 2,需要运行 Windows 10(   内部版本 18362  或更高版本)。 将 WSL 2 设置为默认版本:出现如下提示:

PS C:\WINDOWS\system32> wsl --set-default-version 2

请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化。

命令部署映像服务和管理工具:dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

部署完成后,Windows功能“虚拟机平台”勾选。 重启OS,

PS C:\WINDOWS\system32> wsl --set-default-version 2   // 使 WSL 2 成为默认体系结构

有关与 WSL 2 的主要区别的信息,请访问 aka.ms/wsl2

PS C:\WINDOWS\system32> wsl --list --verbose     // 会将安装的任何 新分发版的版本设置为 WSL 2,但之前安装的还是1!

  NAME      STATE           VERSION

* Ubuntu    Running         1                  // 卸载 Ubuntu,重新安装  VERSION变为:2

新安装Debian测试, WSL版本为 2

PS C:\WINDOWS\system32> wsl -l -v

  NAME      STATE           VERSION

* Ubuntu    Stopped         1

  Debian    Running         2

新安装Docker Desktop(未勾选Kubenetes),重启OS,以太网自动增加并启用Hyper-V Virtual Ethernet Adapter:vEthernet (WSL):

PS C:\WINDOWS\system32> wsl -l -v

  NAME              STATE           VERSION

* Ubuntu            Stopped         1

  docker-desktop    Installing      2

  Debian            Stopped         2

!(此时,ASTERIX Analyzer、receiver和RadarAnalizer均运行正常)

安装WSL2及在其上安装docker-desktop需要在“Windows功能” 勾选“虚拟机平台”,不需要 在“ Windows功能”勾选:“Hyper-V”及其子项。

14、从以上推测可能在 Docker Desktop配置 Kubenetes,或者KinD( 创建 Kubernetes 集群)导致网络配置改变,出现 ASTERIX Analyzer、receiver软件从端口读取数据错误。

请使用浏览器的分享功能分享到微信等