Docker Desktop WSL 2 后端


原文:Docker Desktop WSL 2 backend

Docker Desktop WSL 2 后端

Windows Subsystem for Linux(WSL)2 采用了一個重大的體系結構變化,因為它是由Microsoft構建的完整的Linux內核,允許Linux容器在本機運行而無需模擬運行。在WSL 2上運行的Docker Desktop,用戶可以利用Linux工作區並避免維護Linux和Windows構建腳本。此外,wsl2還改進了文件系統共享、引導時間,並允許Docker桌面用戶訪問一些很酷的新功能。
Docker Desktop使用WSL2中的動態內存分配功能,大大提高了資源消耗。這意味着,Docker Desktop只使用所需數量的CPU和內存資源,同時使CPU和內存密集型任務(如構建容器)運行得更快。
另外,使用WSL 2,冷啟動后啟動Docker守護進程所需的時間明顯更快。啟動Docker守護進程所需時間不到10秒,而在Docker Deskto的前一版本中,這一時間幾乎為一分鍾。

先決條件

在安裝Docker Desktop WSL 2后端之前,必須完成以下步驟:

  1. 安裝Windows 10 2004版或更高版本。

  2. 在Windows上啟用WSL 2功能。有關詳細說明,請參閱用於 Linux 的 Windows 子系統安裝指南 (Windows 10)

    PS:參照文檔安裝Linux分發版,完成后先更新WSL 2 Linux 內核再啟動Linux 分發版,Linux分發版安裝完成后直接啟動可能報錯。錯誤代碼:0x800706be

  3. 下載並安裝Linux內核更新包。詳見更新 WSL 2 Linux 內核

下載

下載Docker Desktop Stable 2.3.0.2版或者以后的版本
地址:https://www.docker.com/products/docker-desktop

安裝

在安裝Docker Desktop Stable 2.3.0.2版本之前確保已完成“先決條件”部分中描述的步驟。

  1. 按照通常的安裝說明安裝Docker Desktop。如果您運行的是受支持的系統,Docker Desktop會在安裝期間提示您啟用WSL2。閱讀屏幕上顯示的信息並啟用WSL 2以繼續。

  2. 啟動Docker Desktop。

  3. 從Docker菜單中,選擇Settings -> General。

  4. 選擇Use WSL 2 based engine復選框。

  5. 點擊 Apply & Restart

  6. 確保分發在WSL2模式下運行。WSK可以在v1或v2模式下運行發行版。
    要檢查WSL模式,請運行
    wsl -l -v
    要將現有的Linux發行版升級到v2,請運行:
    wsl --set-version (distro name) 2

  7. 當Docker Desktop重新啟動時,轉到Settings>Resources>WSL Integration。
    WSL集成將在您的默認WSL發行版上啟用。要更改默認的WSL發行版,請運行
    wsl --set-default <distro name>
    例如,要將Ubuntu設置為默認的WSL發行版,請運行wsl --set-default ubuntu
    或者,選擇要在其上啟用wsl2的任何附加發行版。

  8. 點擊 Apply & Restart

用Docker 和 WSL 2開發

以下部分介紹如何開始使用Docker和WSL2開發應用程序。我們建議您將代碼保存在默認的Linux分發中,以獲得使用Docker和wsl2的最佳開發體驗。在DockerDesktop上啟用WSL2之后,您可以開始在Linux發行版中使用代碼,理想情況下,您的IDE仍在Windows中。如果您使用的是VS Code,那么這個工作流可能非常直截了當。

  1. 打開VSCode並安裝遠程-WSL擴展。這個擴展允許您使用Linux發行版中的遠程服務器和仍在Windows上的IDE客戶端。
    現在,您可以遠程使用VSCode。為此,請打開終端並鍵入:
    wsl
    code .

這會打開一個新的VSCode,它遠程連接到你默認的Linux發行版,您可以在屏幕的下角進行檢查。

或者,您可以在開始菜單中鍵入默認Linux發行版的名稱,打開它,然后運行code

當您在VS Code中時,您可以從您的Windows計算機使用VS Code中的終端來提取代碼,並開始本地工作。

最佳方法

  • 在綁定裝載文件時獲取最好的文件系統性能:

    • 在Linux文件系統存儲源代碼和其他被捆綁裝載到Linux容器的數據(i.e.,withdocker run -v <host path>:<container path>),而不是在Windows文件系統。

    • 如果原始文件存儲在Linux文件系統中,Linux容器只接受文件改變事件(“inotify事件”)。

    • 當文件捆綁裝載在Linux文件系統中,而不是Windows時,性能要高得多。所以要避免docker run -v /mnt/c/users:/users(其中/mnt/c從Windows裝載)。

    • 取而代之的是,在Linux shell中使用一個命令,如docker run -v ~/my-project:/sources <my-image>其中~由Linux shell擴展為$HOME

  • 如果您擔心docker桌面數據VHDX的大小,或者需要更改它,請查看WSL tooling built into Windows .

  • 如果您擔心CPU或內存使用情況,可以配置限制給分配到WSL 2 utility VM的內存、CPU、交換大小。

  • 為了避免一切在Docker Desktop上使用WSL2的潛在沖突,在安裝Docker Desktop之前,您必須卸載Docker Engine的所有早期版本以及直接通過Linux發行版安裝的CLI。

反饋

你的反饋對我們很重要。請通過在Docker Desktop for Windows GitHub存儲庫創建問題並添加WSL 2標簽來讓我們知道你的反饋。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM