docker默認存儲空間用完情況下,做遷移數據


由於docker默認存放數據路徑為/var/lib/docker,但運行了一段時間后,發現/var/lib/docker下的目錄文件過大,導致此分區空間不夠用。通過以下方法,解決該問題。

 

如何避免:

最好是在docker安裝完后,第一時間修改docker默認存儲位置為其他大目錄或者磁盤中。規避遷移數據過程中造成的風險。

 

方式一:修改默認存儲路徑

 

直接移出數據,並修改docker默認存放路徑位置

 

1、移出數據

systemctl stop docker

mkdir -p /data1/docker/   #創建新的docker目錄,執行命令df -h,找一個大的磁盤

rsync -avz /var/lib/docker/ /data1/docker/  #遷移到新路徑下

 

2、修改配置默認路徑

#添加--graph=/data1/docker/

[root@cdh03 ~]# vim /usr/lib/systemd/system/docker.service  

ExecStart=/usr/bin/dockerd-current --graph=/data1/docker/\

          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \

[root@cdh03 ~]# systemctl daemon-reload

[root@cdh03 ~]# systemctl start docker

[root@cdh03 ~]# docker info |grep "Docker Root Dir"

Docker Root Dir: /data1/docker

[root@cdh03 ~]# docker images  #確認之前的鏡像是否還在

[root@cdh03 ~]# docker ps -a

 

3、確定容器沒問題后刪除/var/lib/docker/目錄中的文件

 

 

方式二:軟連接

 

systemctl stop docker

mkdir -p /data1/docker/   #創建新的docker目錄,執行命令df -h,找一個大的磁盤

rsync -avz /var/lib/docker/ /data1/docker/  #遷移到新路徑下

mv /var/lib/docker /data/docker_bak

ln -s /data1/docker /var/lib/

systemctl daemon-reload

systemctl start docker

 


免責聲明!

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



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