Windows10系統(tǒng)下Docker默認(rèn)存儲(chǔ)位置更改方案
前言
由于所用的ThinkPad T480的C盤(pán)是自帶的128G的SSD盤(pán),采用的是Windows 10操作系統(tǒng),隨著開(kāi)發(fā)類(lèi)工具的安裝,C盤(pán)經(jīng)常告警存儲(chǔ)空間不足,尤其是安裝Docker Desktop并進(jìn)行多種鏡像容器試驗(yàn)操作,由于Docker默認(rèn)的鏡像容器等存儲(chǔ)位置在C盤(pán), 更是捉襟見(jiàn)肘。
在無(wú)法快速擴(kuò)容SSD盤(pán)的情況下,分析Docker(采用WSL2引擎)相關(guān)的C盤(pán)存儲(chǔ),進(jìn)行相關(guān)更改, 將會(huì)是一種變通方案。
一、默認(rèn)存儲(chǔ)情況分析及解決方案
與Docker相關(guān)的存儲(chǔ)主要有以下幾個(gè)層面:
1) 容器引擎WSL2默認(rèn)的Distro Ubuntu
這是通過(guò)Windows Store安裝的,其默認(rèn)存儲(chǔ)位置是:
file:///C:/Users/<UserName>/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc/LocalState/
詳細(xì)內(nèi)容可以通過(guò)以下訪(fǎng)問(wèn): \\wsl$\Ubuntu
這里暫不考慮Ubuntu安裝包的位置的更改:
C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu_2204.1.8.0_x64__79rhkp1fndgsc
這是Windows應(yīng)用程序,所占空間約為: 570M。
2) Docker Desktop應(yīng)用程序文件的默認(rèn)安裝位置及重定向
Windows Docker Desktop應(yīng)用的默認(rèn)安裝位置為:
C:\Program Files\Docker
而且安裝時(shí)無(wú)選擇項(xiàng)(截止2023/02/07的版本),可以采用目錄鏈接的方式,將應(yīng)用安裝到D盤(pán)等,采用如下的命令:
mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"
下載Windows Docker Desktop應(yīng)用直接安裝即可。
如下圖可以看出,C盤(pán)展示目錄鏈接的形式:
具體內(nèi)容是安裝在D盤(pán)下:
需要注意的是,這種安裝模式下,當(dāng)Docker Desktop應(yīng)用程序自動(dòng)更新升級(jí)時(shí),有時(shí)會(huì)出現(xiàn)應(yīng)用程序文件又物理安裝到了C盤(pán)的情況,后續(xù)找時(shí)間再重現(xiàn)定位解決。
3) Docker應(yīng)用自身系統(tǒng)、用戶(hù)鏡像文件及容器數(shù)據(jù)文件的存儲(chǔ)位置
默認(rèn)情況下, Docker相關(guān)鏡像存儲(chǔ)于C盤(pán)下的兩個(gè)目錄,且無(wú)法安裝時(shí)進(jìn)行選擇:
可以與1)一起采用下文的wsl命令,將相關(guān)目錄及文件的存儲(chǔ)位置進(jìn)行重新安排。
二、Docker相關(guān)存儲(chǔ)文件位置的變動(dòng)
1) 停止WSL2引擎及Windows Docker Desktop應(yīng)用程序
如上所述,Docker相關(guān)的存儲(chǔ)文件默認(rèn)都是在C盤(pán)系統(tǒng)盤(pán)中,為進(jìn)行存儲(chǔ)數(shù)據(jù)文件位置的變動(dòng),首先需要退出Docker應(yīng)用, 并停止wsl引擎
wsl --shutdown
2) 進(jìn)行相關(guān)存儲(chǔ)信息查詢(xún)(默認(rèn)在C盤(pán))及確定新的存儲(chǔ)目錄
關(guān)聯(lián)的數(shù)據(jù)及Distro可以采用以下的命令列出:
wsl -l -v -all
docker-desktop-data與docker-desktop分別別對(duì)應(yīng)2個(gè) vhdx 硬盤(pán)映像文件:
C:\Users\<user name>\AppData\Local\Docker\data\ext.vhdx
C:\Users\<user name>\AppData\Local\Docker\distro\ext.vhdx
可以通過(guò)wsl export及import命令來(lái)對(duì)相關(guān)文件的存儲(chǔ)位置進(jìn)行改變。
Ubuntu是wsl2的distro,新的存儲(chǔ)目錄更改到:
d:\wsl-distro目錄中。
Docker相關(guān)的鏡像文件存儲(chǔ)及數(shù)據(jù)存儲(chǔ),新的存儲(chǔ)目錄將分別更改存儲(chǔ)到:
d:\Docker\wsl\distro
d:\Docker\wsl\data
3) 執(zhí)行存儲(chǔ)位置更動(dòng)命令
wsl --export Ubuntu D:\wsl-distro\ubuntu.tar
wsl --unregister Ubuntu
wsl --import Ubuntu D:\wsl-distro D:\ws-distro\ubuntu.tar --version 2
可以看到:
原來(lái)存儲(chǔ)的文件已不存在。
而新的存儲(chǔ)所在已生效。
同樣對(duì)Windows DockerDesktop的相關(guān)存儲(chǔ)執(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
如下圖所示:
同樣可以看到原存儲(chǔ)位置所占用空間已釋放:
Import后也反映在新的存儲(chǔ)位置:
4) 設(shè)置Docker Engine的存儲(chǔ)位置
如前所示,默認(rèn)情況下, Docker環(huán)境下的其它相關(guān)鏡像文件及容器文件,存儲(chǔ)在:C:\ProgramData\Docker目錄下,可以通過(guò)Windows Docker Destop中的Docker Enginer的配置文件進(jìn)行更改,具體是JSON文件中增加如下一行:
"data-root":"d\\docker"
然后重啟Windows Docker Desktop, 后續(xù)運(yùn)行所需的鏡像文件及容器文件講會(huì)存儲(chǔ)到新的位置,而非原來(lái)的C盤(pán)下。
通過(guò)以上的操作,將可以一定程度上緩解C盤(pán)空間有限的情況下想繼續(xù)使用Windows Docker Desktop進(jìn)行更多探索而捉襟見(jiàn)肘的情況,特此分享。
總結(jié)
到此這篇關(guān)于Windows10系統(tǒng)下Docker默認(rèn)存儲(chǔ)位置更改方案的文章就介紹到這了,更多相關(guān)Docker默認(rèn)存儲(chǔ)位置更改內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker自建GitLab倉(cāng)庫(kù)的實(shí)現(xiàn)
Harbor是一個(gè)用于存儲(chǔ)和分發(fā)Docker鏡像的企業(yè)級(jí)Registry服務(wù)器,本文主要介紹了docker自建GitLab倉(cāng)庫(kù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07Linux新建用戶(hù)并允許docker及docker基本命令
這篇文章給大家介紹了Linux新建用戶(hù)并允許docker及docker的容器創(chuàng)建及基本命令講解,需要的朋友參考下本文吧2017-12-12PVE下擴(kuò)展openwrt?for?x86分區(qū)大小方式
本文介紹了在PVE環(huán)境下如何對(duì)OpenWRT虛擬機(jī)的分區(qū)進(jìn)行擴(kuò)容,包括磁盤(pán)調(diào)整、軟件安裝、分區(qū)配置和系統(tǒng)引導(dǎo)等步驟,操作前需做好備份,以防數(shù)據(jù)丟失2024-10-10基于docker搭建redis-sentinel集群的方法示例
這篇文章主要介紹了基于docker搭建redis-sentinel集群的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Docker 環(huán)境運(yùn)行 Mysql 和開(kāi)啟 Binlog 配置主從同步的設(shè)置方法
今天給大家分享Docker 環(huán)境運(yùn)行 Mysql 和開(kāi)啟 Binlog 配置主從同步的設(shè)置方法,利用docker模擬mysql設(shè)置的主從同步,通過(guò)兩種方式給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06docker的harbor倉(cāng)庫(kù)登錄問(wèn)題小結(jié)
在使用Docker?Harbor時(shí),可能會(huì)因?yàn)樽C書(shū)信任問(wèn)題或DNS解析問(wèn)題導(dǎo)致登錄失敗,解決方法包括將自簽名證書(shū)添加到系統(tǒng)的可信證書(shū)存儲(chǔ)中,本文給大家介紹docker的harbor倉(cāng)庫(kù)登錄問(wèn)題,感興趣的朋友一起看看吧2024-09-09如何使用Docker部署FTP和Nginx并通過(guò)HTTP訪(fǎng)問(wèn)FTP里的文件
本文介紹了如何使用Docker部署FTP服務(wù)器和Nginx,并通過(guò)HTTP訪(fǎng)問(wèn)FTP中的文件,通過(guò)將FTP數(shù)據(jù)目錄掛載到Nginx容器內(nèi),Nginx可以提供文件列表和下載功能,推薦使用Docker Compose來(lái)管理容器2025-03-03詳解掛載運(yùn)行的docker容器中如何掛載文件系統(tǒng)
這篇文章主要給大家介紹了如何在掛載運(yùn)行中的docker容器中掛載文件系統(tǒng),文中通過(guò)一步步的實(shí)踐過(guò)程介紹的很詳細(xì),相信對(duì)有需要的朋友們來(lái)說(shuō)具有一定的參考借鑒價(jià)值,感興趣的朋友們下面來(lái)一起看看吧。2016-12-12