1. 程式人生 >實用技巧 >其它 >如何遷移docker磁碟檔案路路徑 (or 擴容)

如何遷移docker磁碟檔案路路徑 (or 擴容)


如何遷移docker磁碟檔案路徑

Background

前段時間轉向使用docker管理實驗室伺服器資源,同學反映磁碟不夠,上去一看才發現docker的預設磁碟路徑是 /var/lib/docker,我們知道/var 目錄預設是掛在在centos-root系統分割槽下的,通常預設只有50GB。當用戶和容器的數量逐漸變多,是完全不夠用的。因此,我們需要在已經存在已分配的容器的情況下,把所有的容器和資料遷移到其他物理磁碟的分割槽中。

目標

將容器和資料從/var/lib/docker (掛在在centos-root分割槽) 遷移到 /home/docker (掛在在centos-home分割槽)中。

步驟

  1. 停止正在執行的docker服務(請自行將所有容器中重要的程式儲存停止,甚至備份)
# 這裡使用的centos7,不同的linux發行版指令可能不同
systemctl stop docker
  1. 修改docker配置檔案 daemin.json
# 預設情況下是沒有該檔案的,自行建立編輯
vi /etc/docker/daemon.json

在檔案中填入如下內容 (該配置會覆蓋代理,如果有配置代理請自行加入配置)

{
  "data-root": "/home/docker"
}
  1. 拷貝資料檔案至目標目錄
# 這裡起始位置的\是為了禁止出現overwrite確認提示,預設直接覆蓋重名檔案
\cp -rf /var/lib/docker/* /home/docker/
  1. 重啟docker服務,並檢查容器資料和狀態
# 這裡使用的centos7,不同的linux發行版指令可能不同
systemctl restart docker
# 檢查overlay磁碟對映是否正確對映到/home/docker中
df -h

如何遷移docker磁碟檔案路路徑 (or 擴容)


5. 清理舊資料 (請在確認資料遷移完好的情況下執行)

rm -rf /var/lib/docker/