今天程式跑到一半出現錯誤,找了發現原來是 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)刪掉
再次查看檔案總管,成功轉移檔案!
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com