Windows10系統(tǒng)下Docker默認存儲位置更改方案
前言
由于所用的ThinkPad T480的C盤是自帶的128G的SSD盤,采用的是Windows 10操作系統(tǒng),隨著開發(fā)類工具的安裝,C盤經(jīng)常告警存儲空間不足,尤其是安裝Docker Desktop并進行多種鏡像容器試驗操作,由于Docker默認的鏡像容器等存儲位置在C盤, 更是捉襟見肘。
在無法快速擴容SSD盤的情況下,分析Docker(采用WSL2引擎)相關(guān)的C盤存儲,進行相關(guān)更改, 將會是一種變通方案。
一、默認存儲情況分析及解決方案
與Docker相關(guān)的存儲主要有以下幾個層面:
1) 容器引擎WSL2默認的Distro Ubuntu
這是通過Windows Store安裝的,其默認存儲位置是:
file:///C:/Users/<UserName>/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc/LocalState/

詳細內(nèi)容可以通過以下訪問: \\wsl$\Ubuntu

這里暫不考慮Ubuntu安裝包的位置的更改:
C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu_2204.1.8.0_x64__79rhkp1fndgsc
這是Windows應(yīng)用程序,所占空間約為: 570M。
2) Docker Desktop應(yīng)用程序文件的默認安裝位置及重定向
Windows Docker Desktop應(yīng)用的默認安裝位置為:
C:\Program Files\Docker
而且安裝時無選擇項(截止2023/02/07的版本),可以采用目錄鏈接的方式,將應(yīng)用安裝到D盤等,采用如下的命令:
mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"

下載Windows Docker Desktop應(yīng)用直接安裝即可。
如下圖可以看出,C盤展示目錄鏈接的形式:

具體內(nèi)容是安裝在D盤下:

需要注意的是,這種安裝模式下,當Docker Desktop應(yīng)用程序自動更新升級時,有時會出現(xiàn)應(yīng)用程序文件又物理安裝到了C盤的情況,后續(xù)找時間再重現(xiàn)定位解決。
3) Docker應(yīng)用自身系統(tǒng)、用戶鏡像文件及容器數(shù)據(jù)文件的存儲位置
默認情況下, Docker相關(guān)鏡像存儲于C盤下的兩個目錄,且無法安裝時進行選擇:


可以與1)一起采用下文的wsl命令,將相關(guān)目錄及文件的存儲位置進行重新安排。


二、Docker相關(guān)存儲文件位置的變動
1) 停止WSL2引擎及Windows Docker Desktop應(yīng)用程序
如上所述,Docker相關(guān)的存儲文件默認都是在C盤系統(tǒng)盤中,為進行存儲數(shù)據(jù)文件位置的變動,首先需要退出Docker應(yīng)用, 并停止wsl引擎
wsl --shutdown
2) 進行相關(guān)存儲信息查詢(默認在C盤)及確定新的存儲目錄
關(guān)聯(lián)的數(shù)據(jù)及Distro可以采用以下的命令列出:
wsl -l -v -all

docker-desktop-data與docker-desktop分別別對應(yīng)2個 vhdx 硬盤映像文件:
C:\Users\<user name>\AppData\Local\Docker\data\ext.vhdx
C:\Users\<user name>\AppData\Local\Docker\distro\ext.vhdx
可以通過wsl export及import命令來對相關(guān)文件的存儲位置進行改變。
Ubuntu是wsl2的distro,新的存儲目錄更改到:
d:\wsl-distro目錄中。
Docker相關(guān)的鏡像文件存儲及數(shù)據(jù)存儲,新的存儲目錄將分別更改存儲到:
d:\Docker\wsl\distro
d:\Docker\wsl\data
3) 執(zhí)行存儲位置更動命令
wsl --export Ubuntu D:\wsl-distro\ubuntu.tar
wsl --unregister Ubuntu
wsl --import Ubuntu D:\wsl-distro D:\ws-distro\ubuntu.tar --version 2


可以看到:
原來存儲的文件已不存在。

而新的存儲所在已生效。

同樣對Windows DockerDesktop的相關(guān)存儲執(zhí)行系列操作:
Export操作:
wsl --export docker-desktop D:\Docker\wsl\distro\docker-desktop.tar
wsl --export docker-desktop-data D:\Docker\wsl\data\docker-desktop-data.tar
Unregister操作:
wsl --unregister docker-desktop-data
wsl --unregister docker-desktop
Import操作:
wsl --import docker-desktop-data d:\Docker\wsl\data\ D:\Docker\wsl\data\docker-desktop-data.tar --version 2
wsl --import docker-desktop d:\Docker\wsl\distro\ D:\Docker\wsl\distro\docker-desktop.tar --version 2
如下圖所示:



同樣可以看到原存儲位置所占用空間已釋放:



Import后也反映在新的存儲位置:


4) 設(shè)置Docker Engine的存儲位置
如前所示,默認情況下, Docker環(huán)境下的其它相關(guān)鏡像文件及容器文件,存儲在:C:\ProgramData\Docker目錄下,可以通過Windows Docker Destop中的Docker Enginer的配置文件進行更改,具體是JSON文件中增加如下一行:
"data-root":"d\\docker"

然后重啟Windows Docker Desktop, 后續(xù)運行所需的鏡像文件及容器文件講會存儲到新的位置,而非原來的C盤下。
通過以上的操作,將可以一定程度上緩解C盤空間有限的情況下想繼續(xù)使用Windows Docker Desktop進行更多探索而捉襟見肘的情況,特此分享。
總結(jié)
到此這篇關(guān)于Windows10系統(tǒng)下Docker默認存儲位置更改方案的文章就介紹到這了,更多相關(guān)Docker默認存儲位置更改內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用docker的python基礎(chǔ)鏡像時要指定patch版本原理
這篇文章主要為大家介紹了使用docker的python基礎(chǔ)鏡像時要指定patch版本原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10
Docker中Harbor企業(yè)級鏡像倉庫的搭建與使用
本文介紹了Harbor企業(yè)級鏡像倉庫的搭建與使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-12-12
Docker版Percona Xtrabackup全量壓縮腳本方式
本文介紹了如何在Linux環(huán)境下使用Percona XtraBackup進行MySQL數(shù)據(jù)庫的每天定時備份,并通過腳本實現(xiàn)備份數(shù)據(jù)的壓縮、日志管理以及定時任務(wù)的設(shè)置2026-02-02

