只有累積,沒有奇蹟

2019年3月2日 星期六

[Docker] 修改 Docker image 預設存放位置

問題 
最近在安裝新應用程式時發現系統硬碟 C 槽空間嚴重不足,公司筆電 128 G 的 SSD只剩不到 2G 空間可以使用,盤查後發現最近在公司筆電嘗試很多 Docker 應用,而這些 image 檔案都存在系統硬碟因而把系統硬碟灌爆,這篇分享在 Docker 中如何修改預設的儲存位置,來解決上述提到頭痛的問題,若有謬誤或是更快的方法歡迎留言一起討論。 

Windows Container
Docker Enginer 分為 windows 與 linux 兩種,以下分別介紹兩者的修改方式

查詢目前存放位置
首先可以先透過 docker info 指令來得知目前 Docker image 儲存的位置
可以得知目前兩個資訊
1. Docker 路徑為 C:\ProgramData\Docker 資料夾中
2. 存放 image 位置 Storage Driver 為 windowsfilter

修改 image 存放位置
Docker 官網中可以得知 config 檔案存放在 C:\ProgramData\Docker\Config 目錄底下的 daemon.json,要修改 image 下載位置及需要修改 daemon.json 內容,開啟 daemon.json 檔案加入 "graph": "path"
{
  "registry-mirrors": [],
  "insecure-registries": [],
  "debug": true,
  "experimental": false,
  "graph": "D:\\DockerImage\"
}
修改完畢後儲存 config 檔案,接著輸入下列指令重啟 docker service
restart-service *docker*
或是輸入下列指令 
Net stop com.docker.service
Net start com.docker.service
重啟 Service 之後重新執行 Docker info 指令確認修改是否有成功
確認修改路徑成功 ! 也可以發現指定的目錄底下出現 Docker 相關的 folder 與檔案

備註 : 如果系統版本是 windows 10 pro 1809 版本很有可能會遇到執行 docker info 發生異常, 如下所示
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/info: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
出現上列錯誤訊息不用擔心,看似是修改 config 異常造成啟動失敗,但遇到時使用重新啟動即可正常使用 docker 相關指令。

Linux Container

如果使用的是 Linux 即可透過設定調整路徑位置
Step 1 : 點選 Docker Logo > settings
Step 2 : Advanced > 調整 Disk image location 設定

後記 
看似簡單的設定,卻花了不少時間才設定成功,主要是因為在 windows container 時設定完畢後一直出現錯誤訊息,上網查了許多官網資料都沒有新的線索,沒想到一重開就解決了,重開治百病這句話果然非常的實用阿 !!

參考
Where are images stored
Widnows 環境中修改 Docker image 的儲存位置

0 意見:

張貼留言

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com