docker數據目錄遷移


場景介紹

 最近公司的項目出現無響應的問題,排查后發現是磁盤已滿導致的,df -h 顯示已占用達到了100%。幸好服務器還有一塊數據盤,之前已作為mysql的數據目錄,現在打算再把docker也遷移至數據盤。
 在這里和大家分享下經歷,難免會有些許錯誤,請各位看官不吝賜教。

方案介紹

 考慮了下,決定采用軟連接的方式解決,好處是能保證docker原有配置的情況下將數據目錄遷移至數據盤,不修改配置文件也意味着降低誤操作的概率。更好的是相比於直接掛載磁盤方案,一個數據盤可以為多個應用服務,管理十分方便,而且實際操作只需幾條命令即可。
 理論上任何軟件的數據遷移都可以用軟連接的方式解決。在這之前的mysql也是使用軟連接解決的。

方案實施

 默認情況下Docker的存放位置為:/var/lib/docker
可以通過下面命令查看具體位置:

docker info | grep "Docker Root Dir"
  1. 首先停掉Docker服務:
systemctl stop docker 
  1. 然后根據上面查到的路徑,移動整個/var/lib/docker目錄到數據盤的目的路徑:
mv /var/lib/docker /home/docker

 必須使用mv命令,cp會丟失權限信息,可能會導致意想不到的bug。
3. 加入軟連接

ln -s /home/docker /var/lib/docker

 先看下/home/docker下的目錄,確定掛載成功在啟動docker,即使掛載有問題,無礙,也可停止停止docker后重新操作
4. 啟動docker

systemctl start docker 

 這時候啟動Docker時發現存儲目錄依舊是/var/lib/docker,但是實際上是存儲在數據盤的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM