win10使用WSL 2運行Docker Desktop,運行文件從C盤遷移到其餘目錄

前言

前幾天重裝系統,把系統升到了Windows 10 2004,而後在安裝Docker Desktop(2.3.0.3版本)時發現跟之前不太同樣了。如今Docker Desktop默認使用WLS 2來運行,而不是之前的Hyper-V。git

WLS

WLS:適用於 Linux 的 Windows 子系統。github

  • 什麼是適用於 Linux 的 Windows 子系統?

適用於 Linux 的 Windows 子系統可以讓開發人員按原樣運行 GNU/Linux 環境 - 包括大多數命令行工具、實用工具和應用程序 - 且不會產生虛擬機開銷。docker

  • 什麼是 WSL 2?

WSL 2 是適用於 Linux 的 Windows 子系統體系結構的一個新版本,它支持適用於 Linux 的 Windows 子系統在 Windows 上運行 ELF64 Linux 二進制文件。 它的主要目標是提升文件系統性能,以及添加徹底的系統調用兼容性。windows

安裝完後試了一下,最明顯的感受就是開啓docker的速度大大提高!!!

工具

可是之前設置鏡像位置的功能不見了:

看官網說明,原來,啓用WSL後,docker運行數據都在WSL發行版中,文件位置都只能由WSL管理!

性能

安裝docker後,docker會自動建立2個發行版:spa

  • docker-desktop
  • docker-desktop-data

WSL發行版默認都是安裝在C盤,在%LOCALAPPDATA%/Docker/wsl目錄
docker的運行數據、鏡像文件都存在%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx中,這對C盤空間緊張的人很是不友好。。。
命令行

WSL發行版遷移

網上查了一下wsl發行版遷移,幾乎都是說使用LxRunOffline.execode

通過我試驗,LxRunOffline.exe確實能夠遷移本身安裝的發行版,卻遷移不了docker自動建立的2個發行版!blog

最後只能去github提了個issues:https://github.com/docker/for-win/issues/7348

下面是操做方法:

  1. 首先關閉docker

  2. 關閉全部發行版:
    wsl --shutdown

  3. 將docker-desktop-data導出到D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar(注意,原有的docker images不會一塊兒導出)
    wsl --export docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar

  4. 註銷docker-desktop-data:
    wsl --unregister docker-desktop-data

  5. 從新導入docker-desktop-data到要存放的文件夾:D:\SoftwareData\wsl\docker-desktop-data\:
    wsl --import docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data\ D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar --version 2



只須要遷移docker-desktop-data一個發行版就行,另一個不用管,它佔用空間很小。

完成以上操做後,原來的%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx就遷移到新目錄了:

重啓docker,這下不用擔憂C盤爆滿了!

參考:
https://docs.microsoft.com/zh-cn/windows/wsl/
https://docs.docker.com/docker-for-windows/wsl/

相關文章
相關標籤/搜索