欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文詳解如何更改Docker鏡像存儲路徑

 更新時間:2025年08月07日 09:21:59   作者:萬事可愛^  
在Docker中,默認情況下鏡像的存儲路徑是在C盤,然而,隨著時間的推移,您可能會發(fā)現(xiàn)這個默認路徑占用了大量的磁盤空間,這篇文章主要介紹了如何更改Docker鏡像存儲路徑的相關資料,需要的朋友可以參考下

背景與痛點

Docker Desktop默認將鏡像存儲在C盤的C:\Users\<用戶名>\AppData\Local\Docker\wsl\data路徑下。隨著鏡像和容器數(shù)量增加,C盤空間可能迅速被占滿。本文將通過WSL實例遷移高級掛載策略兩種方案,教你安全高效地遷移存儲路徑。

方案一:WSL實例遷移法(推薦)

適用場景:希望徹底改變存儲位置,適用于所有Windows版本。

一、能找到 docker-desktop-data 時

1. 確認當前存儲路徑

  • 打開Docker Desktop → SettingsResourcesAdvanced

  • 記錄當前路徑(如C:\Users\admin\AppData\Local\Docker\wsl

  • 進入資源管理器,查看data文件夾大小(通常幾十GB)

2. 停止Docker服務

首先需要關閉Docker Desktop應用,然后打開 PowerShell 輸入wsl --list -v查看查看WSL中的運行的實例是否停止,一般情況下關閉Docker Desktop應用,WSL中的運行的實例也會跟著停止,如下所示:

如果沒有正確停止state會顯示為running,這是我們則需要輸入如下命令停止實例

# 關閉Docker Desktop應用
taskkill /f /im Docker.exe

# 終止WSL實例
wsl --shutdown

停止之后再次輸入wsl --list -v查看進程是否被正確關閉。

3. 導出WSL實例

# 創(chuàng)建備份目錄(建議非系統(tǒng)盤,我這里選的是D盤)
mkdir D:\docker\backup

# 導出實例(耗時取決于數(shù)據(jù)量)
wsl --export docker-desktop-data D:\docker\backup\docker-desktop-data.tar

4. 注銷原有實例

wsl --unregister docker-desktop-data

5. 導入到新位置

# 創(chuàng)建目標目錄
mkdir D:\docker\data

# 導入實例(必須指定--version 2)
wsl --import docker-desktop-data D:\docker\data D:\docker\backup\docker-desktop-data.tar --version 2
  • docker-desktop-data 為要導入的實例的名稱,不可修改
  • D:docker\data 新的位置要導入的文件夾
  • D:docker\docker-desktop-data.tar 之前導出備份的實例

6. 驗證遷移結果

# 檢查WSL實例狀態(tài)
wsl --list -v

# 啟動Docker Desktop
# 進入設置查看存儲路徑是否變?yōu)镈:\docker\data

二、找不到 docker-desktop-data 時

在某些系統(tǒng)進行 wsl 實例導出時系統(tǒng)可能會提示不存在具有所提供名稱的分發(fā),如下所示:

當通過 wsl --export 命令操作 docker - desktop - data 分發(fā)報 WSL_E_DISTRO_NOT_FOUND 錯誤,說明系統(tǒng)里 WSL 未識別到名為 docker - desktop - data 的分發(fā),但找到了 docker_data.vhdx 文件時,可按以下思路處理來調(diào)整 Docker 數(shù)據(jù)存儲路徑,本質(zhì)是繞開 WSL 分發(fā)名稱問題,直接遷移虛擬磁盤文件:

優(yōu)先通過 Docker Desktop 內(nèi)置功能遷移數(shù)據(jù)(Settings → Resources → Advanced → Disk image location),而非手動復制 VHDX,減少兼容性問題。如果不行,可以用以下方法

1.確定 docker_data.vhdx 存儲位置

還是在這個界面我們找到下面這個位置,復制到C盤查找 docker_data.vhdx

一般在這個路徑下面(不同安裝配置可能有差異,以實際找到的路徑為準 ):

C:\Users\DELL\AppData\Local\Docker\wsl\disk

2.停止 Docker 及 WSL 相關服務

  1. 完全退出 Docker Desktop 應用(右鍵任務欄 Docker 圖標,選擇“退出” )。
  2. 打開 PowerShell(以管理員身份運行 ),執(zhí)行 wsl --shutdown ,關閉所有 WSL 實例,確保后續(xù)操作時虛擬磁盤文件未被占用。

3.復制/移動到新路徑

docker_data.vhdx 文件復制(或剪切,建議先復制做備份 )到你期望的新存儲路徑,比如 D:\docker\data\docker_data.vhdx ,這一步可能耗時較久,具體按你本身的數(shù)據(jù)量,且不會返回結果,如需驗證是否成功,打開文件夾找到你所創(chuàng)建的文件,看里面是否已經(jīng)遷移有 docker_data.vhdx 。

  • 若選擇剪切(移動),執(zhí)行命令(在 PowerShell 中 ):
    Move-Item -Path "C:\Users\<你的用戶名>\AppData\Local\Docker\wsl\data\docker_data.vhdx" -Destination "D:\docker\data\docker_data.vhdx"
    
  • 若選擇復制,執(zhí)行(在 PowerShell 中 ):
    Copy-Item -Path "C:\Users\<你的用戶名>\AppData\Local\Docker\wsl\data\docker_data.vhdx" -Destination "D:\docker\data\docker_data.vhdx"
    

4.重新配置 Docker Desktop 指向新路徑

Docker Desktop 本身不直接支持通過圖形界面“指定虛擬磁盤路徑”,但可通過修改 WSL 分發(fā)的配置來關聯(lián)新路徑的 docker_data.vhdx

(1). 創(chuàng)建新的 WSL 分發(fā)(關聯(lián)新虛擬磁盤 )

在 PowerShell 中執(zhí)行以下命令,創(chuàng)建一個新的 WSL 分發(fā),并讓它使用你遷移后的 docker_data.vhdx 文件:

wsl --import docker-desktop-data "D:\docker\data" "D:\docker\data\docker_data.vhdx" --version 2 --vhd
  • docker-desktop-data:是新創(chuàng)建的 WSL 分發(fā)名稱,盡量與 Docker 預期的名稱保持一致,方便識別;
  • "D:\docker\data":是新的存儲路徑(即 docker_data.vhdx 所在的文件夾 );
  • "D:\docker\data\docker_data.vhdx":是遷移后的虛擬磁盤文件路徑;
  • --version 2:指定使用 WSL 2 版本,必須添加,否則 Docker 可能無法正常工作。

(2). 驗證 WSL 分發(fā)

執(zhí)行 wsl --list -v ,查看是否出現(xiàn) docker-desktop-data 分發(fā),且狀態(tài)為 Stopped ,路徑為你設置的 D:\docker\data 。

5.重啟 Docker Desktop 并驗證

  1. 重新打開 Docker Desktop ,等待其自動初始化。
  2. 啟動后,可通過以下方式驗證:
    • 查看 Docker 界面,嘗試啟動容器、拉取鏡像,確認功能正常;
    • 檢查新存儲路徑(D:\docker\data ),后續(xù) Docker 相關數(shù)據(jù)會寫入該目錄,原 C 盤路徑不再增大;
    • 再次執(zhí)行 wsl --list -v ,確認 docker-desktop-data 分發(fā)狀態(tài)正常(運行 Docker 時可能會變?yōu)?Running ,停止 Docker 后會回到 Stopped )。

6.清理舊數(shù)據(jù)(可選)

若遷移成功,且 Docker 工作正常,可刪除原路徑(C:\Users\<你的用戶名>\AppData\Local\Docker\wsl\data )下的舊 docker_data.vhdx 文件(若之前是剪切遷移則無需此步驟 ),釋放 C 盤空間。

關鍵說明

  • 整個過程的核心是利用 WSL 的 --import 功能,手動創(chuàng)建關聯(lián)新虛擬磁盤的分發(fā),讓 Docker Desktop 能識別并使用新路徑的存儲。
  • 操作前務必備份好 docker_data.vhdx 文件,若遷移過程中文件損壞,可能導致 Docker 數(shù)據(jù)丟失(比如鏡像、容器配置等 )。
  • 不同 Docker 版本、WSL 環(huán)境可能有細微差異,若遇到問題,可通過重新執(zhí)行 wsl --import 命令調(diào)整,或嘗試卸載重裝 Docker Desktop(需提前備份重要數(shù)據(jù) )。

這樣就繞開了 WSL 分發(fā)名稱找不到的問題,通過直接遷移虛擬磁盤文件并重新關聯(lián),實現(xiàn)了更改 Docker 數(shù)據(jù)存儲路徑的目的。

方案二:掛載卷映射法(高級)

適用場景:希望保留原有實例,僅修改存儲路徑。

1. 創(chuàng)建符號鏈接(Windows)

# 以管理員身份運行PowerShell
New-Item -ItemType SymbolicLink -Path "C:\Users\admin\AppData\Local\Docker\wsl\data" -Target "D:\docker\data"

2. 掛載目錄到WSL(Linux)

# 進入WSL終端
sudo mkdir /mnt/docker/data
sudo mount --bind /mnt/wsl/docker-desktop-data /mnt/docker/data

3. 配置自動掛載(可選)

# 編輯fstab文件
sudo nano /etc/fstab

# 添加以下行
/mnt/wsl/docker-desktop-data /mnt/docker/data none bind 0 0

關鍵注意事項

  1. 備份策略

    • 遷移前務必備份docker-desktop-data.tar
    • 定期使用docker system prune -a清理無效鏡像
  2. 權限問題

    • 導出/導入命令需管理員權限
    • 確保目標目錄權限為777(WSL中)
  3. 性能優(yōu)化

    • 優(yōu)先選擇SSD作為存儲盤
    • 調(diào)整WSL資源分配(內(nèi)存/CPU)

驗證與調(diào)試

  1. 鏡像完整性檢查

    docker images
    # 確認所有鏡像存在
    
  2. 容器啟動測試

    docker run -d --name test nginx
    docker ps
    # 檢查容器狀態(tài)為Up
    
  3. 空間釋放驗證

    # 在資源管理器查看C盤空間變化
    

官方資源

總結

通過本文的兩種方案,你可以安全地將Docker鏡像存儲從C盤遷移到其他磁盤。WSL遷移法適合徹底改變存儲位置,而掛載卷法適合靈活調(diào)整。建議定期清理無效鏡像,并為WSL分配足夠資源以確保性能。在生產(chǎn)環(huán)境中,結合備份策略和監(jiān)控工具(如Portainer)可進一步提升穩(wěn)定性。

常見問題解答

  • Q:遷移后Docker無法啟動?
    A:檢查WSL實例狀態(tài),重新導入備份
  • Q:鏡像文件仍占用C盤空間?
    A:刪除舊實例殘留文件(C:\Users\<用戶名>\AppData\Local\Docker
  • Q:WSL導出失???
    A:確保目標磁盤有足夠空間,以管理員身份運行命令

通過遷移存儲路徑管理,你可以充分釋放C盤空間,讓Docker服務運行得更高效穩(wěn)定。

到此這篇關于如何更改Docker鏡像存儲路徑的文章就介紹到這了,更多相關Docker鏡像存儲路徑更改內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • docker搭建jenkins服務的示例

    docker搭建jenkins服務的示例

    這篇文章主要介紹了docker搭建jenkins服務的示例,幫助大家更好的理解和使用docker容器,感興趣的朋友可以了解下
    2020-09-09
  • 如何解決docker容器訪問不了外部網(wǎng)絡問題

    如何解決docker容器訪問不了外部網(wǎng)絡問題

    介紹了Docker?bridge網(wǎng)絡的工作原理,包括虛擬網(wǎng)橋的創(chuàng)建、容器的IP地址分配、IP轉(zhuǎn)發(fā)的作用以及NAT的配置,通過配置IP轉(zhuǎn)發(fā)和NAT規(guī)則,Docker能夠?qū)崿F(xiàn)容器與外部網(wǎng)絡之間的通信,文章還提供了解決某個具體問題的步驟
    2024-11-11
  • Docker的四種網(wǎng)絡模式

    Docker的四種網(wǎng)絡模式

    這篇文章介紹了Docker的四種網(wǎng)絡模式,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • 基于Docker搭建Redis一主兩從三哨兵的實現(xiàn)

    基于Docker搭建Redis一主兩從三哨兵的實現(xiàn)

    這篇文章主要介紹了基于Docker搭建Redis一主兩從三哨兵的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Docker開啟遠程訪問的實現(xiàn)方式

    Docker開啟遠程訪問的實現(xiàn)方式

    這篇文章主要介紹了Docker開啟遠程訪問的實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Centos7下安裝與卸載docker應用容器引擎的方法

    Centos7下安裝與卸載docker應用容器引擎的方法

    這篇文章主要介紹了Centos7下安裝與卸載docker應用容器引擎的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Docker容器實戰(zhàn)之鏡像與容器的工作原理

    Docker容器實戰(zhàn)之鏡像與容器的工作原理

    這篇文章主要介紹了Docker容器實戰(zhàn)之鏡像與容器,關于鏡像與容器的工作原理,下面文章將詳細介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Docker常用命令與小技巧匯總

    Docker常用命令與小技巧匯總

    這篇文章主要給大家介紹了關于Docker常用命令與小技巧的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Docker具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-10-10
  • 利用Dockerfile優(yōu)化Nestjs構建鏡像大小詳情

    利用Dockerfile優(yōu)化Nestjs構建鏡像大小詳情

    這篇文章主要介紹了利用Dockerfile優(yōu)化Nestjs構建鏡像大小詳情,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Docker如何給Springboot項目動態(tài)傳參的實現(xiàn)方法

    Docker如何給Springboot項目動態(tài)傳參的實現(xiàn)方法

    這篇文章主要介紹了Docker如何給Springboot項目動態(tài)傳參的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11

最新評論