Widnows 環境中修改 Docker image 的儲存位置

同事在 pull asp-net image 時,發現系統磁碟空間不足,無法取得 image,所以想修改 image 的預設儲存位置,讓 image 可以不必佔用系統磁碟槽

這樣一來也可以讓 image 儲存至 NAS 上,讓其他機器也可以共用這些 image,有效降低網路頻寬跟時間

Windows Server 2016 與 Windows 10 上的 Windows Container

透過 docker info 指令可以看到 docker 相關設定

1dockerinfo

  • 預設 Docker 使用路徑

    C:\ProgramData\dcoker

  • 預設 image 儲存資料夾

    windowsfilter

  • 修改儲存路徑

    1. C:\ProgramData\Docker\config 新增 daemon.json
    2. 修改 daemon.json 指定儲存路徑 {"graph": "C:\Docker"}
    3. 重新啟動 docker 服務

      • 使用 powershell 執行指令

        restart-service *docker*

    4. 修改完成

      2chnaged

Windows 10 上的 Linux Container

Windows 10 上的 Linux container 是透過 hyper-v 的虛擬化技術建立的,因此 linux 相關內容都存在 VHD 中

  • 開啟 docker daemon –> setting

    3dockerdaemon

  • Advanced –> Images and volumes VHD location

    4imagelocation

心得

剛好這次遇到問題是 Windows 環境,我猜 linux 環境上應該也會有類似的需求,待我的 linux 環境搞定後再來研究看看該如何設定

參考資訊

  1. How to change docker images and containers location with Windows Containers?
  2. Restart Docker service from command line
  3. Change Docker native images location on Windows 10 Pro