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應用程序,所占空間約為: 570M。
2) Docker Desktop應用程序文件的默認安裝位置及重定向
Windows Docker Desktop應用的默認安裝位置為:
C:\Program Files\Docker
而且安裝時無選擇項(截止2023/02/07的版本),可以采用目錄鏈接的方式,將應用安裝到D盤等,采用如下的命令:
mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"
下載Windows Docker Desktop應用直接安裝即可。
如下圖可以看出,C盤展示目錄鏈接的形式:
具體內(nèi)容是安裝在D盤下:
需要注意的是,這種安裝模式下,當Docker Desktop應用程序自動更新升級時,有時會出現(xiàn)應用程序文件又物理安裝到了C盤的情況,后續(xù)找時間再重現(xiàn)定位解決。
3) Docker應用自身系統(tǒng)、用戶鏡像文件及容器數(shù)據(jù)文件的存儲位置
默認情況下, Docker相關(guān)鏡像存儲于C盤下的兩個目錄,且無法安裝時進行選擇:
可以與1)一起采用下文的wsl命令,將相關(guān)目錄及文件的存儲位置進行重新安排。
二、Docker相關(guān)存儲文件位置的變動
1) 停止WSL2引擎及Windows Docker Desktop應用程序
如上所述,Docker相關(guān)的存儲文件默認都是在C盤系統(tǒng)盤中,為進行存儲數(shù)據(jù)文件位置的變動,首先需要退出Docker應用, 并停止wsl引擎
wsl --shutdown
2) 進行相關(guān)存儲信息查詢(默認在C盤)及確定新的存儲目錄
關(guān)聯(lián)的數(shù)據(jù)及Distro可以采用以下的命令列出:
wsl -l -v -all
docker-desktop-data與docker-desktop分別別對應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) 設置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)文章
PVE下擴展openwrt?for?x86分區(qū)大小方式
本文介紹了在PVE環(huán)境下如何對OpenWRT虛擬機的分區(qū)進行擴容,包括磁盤調(diào)整、軟件安裝、分區(qū)配置和系統(tǒng)引導等步驟,操作前需做好備份,以防數(shù)據(jù)丟失2024-10-10基于docker搭建redis-sentinel集群的方法示例
這篇文章主要介紹了基于docker搭建redis-sentinel集群的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06Docker 環(huán)境運行 Mysql 和開啟 Binlog 配置主從同步的設置方法
今天給大家分享Docker 環(huán)境運行 Mysql 和開啟 Binlog 配置主從同步的設置方法,利用docker模擬mysql設置的主從同步,通過兩種方式給大家介紹的非常詳細,需要的朋友參考下吧2021-06-06如何使用Docker部署FTP和Nginx并通過HTTP訪問FTP里的文件
本文介紹了如何使用Docker部署FTP服務器和Nginx,并通過HTTP訪問FTP中的文件,通過將FTP數(shù)據(jù)目錄掛載到Nginx容器內(nèi),Nginx可以提供文件列表和下載功能,推薦使用Docker Compose來管理容器2025-03-03詳解掛載運行的docker容器中如何掛載文件系統(tǒng)
這篇文章主要給大家介紹了如何在掛載運行中的docker容器中掛載文件系統(tǒng),文中通過一步步的實踐過程介紹的很詳細,相信對有需要的朋友們來說具有一定的參考借鑒價值,感興趣的朋友們下面來一起看看吧。2016-12-12