由于個人情況存在差異,請在參考本文進行數據遷移前后多方比對確認,確保無誤后再謹慎操作!
【2025-08-03補充】運行過程中發現實際上 docker 的遷移工作可能更為復雜!強烈不推薦本文的 docker 遷移方法(本文已翻車)!!!!沒有刪除此處只因為留給讀者作為警示!!!!!Ubuntu暫時沒有排查出問題,但也謹慎參考!!!!
一、情景描述
C 盤空間不夠了,用 TreeSize 檢測的時候發現之前下載的 docker 和 wsl 占了很大空間,但不敢隨便刪掉,所以打算從 C 盤遷移到 D 盤。
先用wsl -l -v
指令查看一下當前已安裝的 wsl。
發現有 Ubuntu-18.04、docker-desktop-data 和 docker-desktop。由于 docker-desktop 體積遠不如其他的大,因此我們對 Ubuntu-18.04、docker-desktop-data 進行遷移,從 C 盤遷移到 D 盤。
二、操作過程
【2025-08-03補充】運行過程中發現實際上 docker 的遷移工作可能更為復雜!強烈不推薦本文的 docker 遷移方法(本文已翻車)!!!!沒有刪除此處只因為留給讀者作為警示!!!!!Ubuntu暫時沒有排查出問題,但也謹慎參考!!!!
對于 docker-desktop-data 和 Ubuntu 而言,遷移數據的流程是一致的:先導出tar包,然后注銷實例,最后再導入。
(一)遷移 docker-desktop-data【2025-08-03補充】此部分已翻車,僅作警示作用
1. 導出 tar 包
執行命令如下,導出數據為 tar 包(具體的 wsl 名稱與目錄位置根據自己情況進行修改)。
wsl --export docker-desktop-data D:\WSL\Docker\docker-desktop-data.tar
??
2. 注銷實例
執行命令如下,注銷 docker-desktop-data。注銷后可使用wsl -l -v
命令驗證,發現確實不再有 docker-desktop-data。
wsl --unregister docker-desktop-data
3. 導入數據
執行命令如下,導入數據。導入后可使用wsl -l -v
命令驗證。
wsl --import docker-desktop-data D:\WSL\Docker\docker-data D:\WSL\Docker\docker-desktop-data.tar --version 2
【2025-08-03補充】存在的問題
然而之后在執行docker images等基本命令后發現,幾乎無法在powershell執行這些命令,在UI界面也同樣無法操作任何 images 或 volumes。檢查后發現Docker Desktop的【設置】->【Resources】下 Disk mage location 的位置仍然在 C 盤,當我嘗試變更為 D 盤對應位置時程序會卡死。我不清楚究竟是什么原因造成的,網上也有資料說需要開放 D 盤對應目錄的所有權限,但我嘗試無果。因此對于上述內容請讀者仔細甄別,避免出現數據丟失的情況!!!
(二)遷移Ubuntu
遷出Ubuntu也是類似的過程。
1. 導出 tar 包
執行命令如下,導出數據為 tar 包。
wsl --export Ubuntu-18.04 D:\WSL\Ubuntu-18.04\Ubuntu-18.04.tar
2. 注銷實例
執行命令如下,注銷 Ubuntu。
wsl --unregister Ubuntu-18.04
3. 導入數據
導入數據。
wsl --import Ubuntu-18.04 D:\WSL\Ubuntu-18.04 D:\WSL\Ubuntu-18.04\Ubuntu-18.04.tar --version 2