遷移 Docker 資料

起因

Windows 裡使用 WSL 2 的 Docker 資料預設在 C 槽,不知不覺間就被塞爆了,我們來將它移到其他槽。

先輸入 wsl -l -v 指令來看一下會有什麼:

1
2
3
4
> wsl -l -v
NAME STATE VERSION
* docker-desktop Stopped 2
docker-desktop-data Stopped 2

docker-desktop:docker 的系統和資料
docker-desktop-data:各 container, image(這個最重要,當然 volume 也是)

後續我們先關閉 Docker,停止運行那些東東、匯出備份,最後在新的位置還原就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 終止運行
> wsl -t docker-desktop
> wsl -t docker-desktop-data

# 匯出備份
> wsl --export docker-desktop D:\wsl\docker-desktop-20230101.tar
> wsl --export docker-desktop-data D:\wsl\docker-desktop-data-20230101.tar

# 註銷
> wsl --unregister docker-desktop
> wsl --unregister docker-desktop-data

# 從備份匯入
> wsl --import docker-desktop D:\wsl\docker-desktop D:\wsl\docker-desktop-20230101.tar --version 2
> wsl --import docker-desktop-data D:\wsl\docker-desktop-data D:\wsl\docker-desktop-data-20230101.tar --version 2

# 完成

匯出的備份檔可以留著,以防出意外還可以還原回來。這是親身經歷過,之前嘗試安裝 Elastic APM,結果 Docker 當機,重開 Docker 後整個 Docker 就壞了,docker-desktop 內的虛擬硬碟直接消失。幸好 docker-desktop-data 和 volume 還在,保住資料,用這個辦法將現有資料掛回去。

參考