天天看點

修改 Docker 鏡像預設存儲位置的方法

由于系統初始分區的原因,導緻作業系統中對應 / 分區不會太大,通過 /var 目錄不會單獨分區。如果上面運作 Docker 服務,經過長時間的使用,會使原本就比較大的分區越來越不夠用。如何更好地的處理這個問題呢?

修改 Docker 鏡像預設存儲位置的方法

我們知道在作業系統當中,預設情況下 Docker 容器的存放位置在 /var/lib/docker 目錄下面,可以通過下面指令檢視具體位置。

解決預設存儲容量不足的情況,最直接且最有效的方法就是挂載新的分區到該目錄。但是在原有系統空間不變的情況下,是以采用軟連結的方式,修改鏡像和容器的存放路徑達到同樣的目的。

然後移動整個 /var/lib/docker 目錄到空間不較大的目的路徑。這時候啟動 Docker 時發現存儲目錄依舊是 /var/lib/docker 目錄,但是實際上是存儲在資料盤 /data/docker 上了。

在配置檔案中指定容器啟動的參數 --graph=/var/lib/docker 來指定鏡像和容器存放路徑。Docker 的配置檔案可以設定大部分的背景程序參數,在各個作業系統中的存放位置不一緻。在 Ubuntu 中的位置是 /etc/default/docker 檔案,在 CentOS 中的位置是 /etc/sysconfig/docker 檔案。

重新啟動之後,Docker 的路徑就改成 /data/docker 了。

如果 Docker 的版本是 1.12 或以上的,可以修改或建立 daemon.json 檔案。修改後會立即生效,不需重新開機 Docker 服務。

在 /etc/systemd/system/docker.service.d 目錄下建立一個 Drop-In 檔案 docker.conf,預設 docker.service.d 檔案夾不存在,必須先建立它。建立 Drop-In 檔案的原因,是我們希望 Docker服務使用 docker.conf 檔案中提到的特定參數,将預設服務所使用的位于 /lib/systemd/system/docker.service 檔案中的參數進行覆寫。

儲存并退出 vim 編輯器 /data/docker 就是新的存儲位置,而 devicemapper 是目前 Docker 所使用的存儲驅動。如果你的存儲驅動有所不同,請輸入之前第一步檢視并記下的值。現在,你可以重新加載服務守護程式,并啟動 Docker 服務了,這将改變新的鏡像和容器的存儲位置。為了确認一切順利,運作 docker info 指令檢查 Docker 的根目錄。

https://blog.51cto.com/forangela/1949947

(版權歸原作者所有,侵删)