win10安裝docker

mi_zy發表於2021-02-27

    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軟體從埠讀取資料錯誤。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-2759917/,如需轉載,請註明出處,否則將追究法律責任。