變更 Docker Desktop 儲存位置 (Windows)

今天程式跑到一半出現錯誤,找了發現原來是 docker container 關閉,手動執行時無法啟動,錯誤訊息如下:

    
Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - error creating overlay mount to /var/lib/docker/overlay2/a7b810e318012a4aba984b313a92797df26bd9abd442a26c3f26d8011e73f035/merged: invalid argument
    


又找了一下錯誤,原來是電腦容量不夠阿!

我們可以先查看一下 Docker 在電腦上總共佔了多大的空間

開啟檔案總管,在路徑列中輸入:
    
        %LOCALAPPDATA%/Docker/wsl
    

裡面檔案如下
    
C:\Users\ruyut\AppData\Local\Docker\wsl/
|-- data/
|   `-- ext4.vhdx
`-- distro/
    `-- ext4.vhdx
    

我們 Docker container, image等資料主要就是儲存在 data/ext4.vhdx 裡面
哇,原來 docker 資料就 129GB 了,難怪會不夠用


遷移

首先關閉 Docker Desktop應用程式
滑鼠右鍵點擊工具列中的 Docker Desktop 圖示 > 點選 Quit Docker Desktop

等待完整關閉後,開啟指令視窗,輸入下列指令:

關閉 WSL
    
        wsl --shutdown
    

備份 docker-desktop-data 資料(data/ext4.vhdx)
註:記得替換為容量足夠的路徑
    
        wsl --export docker-desktop-data D:\docker\docker-desktop-data.tar
    

確認匯出完畢後
取消註冊(刪除 data/ext4.vhdx)
    
        wsl --unregister docker-desktop-data
    

將備份匯入
    
        wsl --import docker-desktop-data D:\docker\data D:\docker\docker-desktop-data.tar --version 2
    

完成後啟動 Docker Desktop,嘗試開關容器,等使用一段時間,確認可以正常使用之後,再去把剛剛備份的 docker-desktop-data 資料(副檔名是tar)刪掉

再次查看檔案總管,成功轉移檔案!

留言