解決方法:1、停止docker服務后,利用“rsync -avz /var/lib/docker 大磁盤目錄/docker/lib/”將docker遷移到大容量磁盤中;2、編輯“/etc/docker/daemon.json”添加指定參數,將docker的目錄遷移綁定;3、重載和重啟docker服務即可。
本教程操作環境:linux7.3系統、docker19.03版、Dell G3電腦。
docker存儲空間不足怎么辦
當我們使用docker時,經常會創建新鏡像和新容器,在新容器中又會安裝各種包,這些東西不是虛擬的,而是實實在在存于我們的磁盤中,默認在/var/lib/docker中,這個目錄是屬于系統盤的,而系統盤的空間往往不大,這樣就會造成,隨著時間的推移,docker越來越大,最后系統盤的空間被占滿,所以這個時候就需要遷移docker的存儲目錄到更大的盤,才能把系統盤的空間騰出來。
查看服務器所有磁盤的使用情況:
df?-h
可以看到,紅框處就是系統盤的大小,總大小是188G(相對其他盤小太多),之前是占滿的,但是博主已經做了遷移,所以空出了很大的空間。
查看docker鏡像和容器存儲目錄的空間大小
du?-sh?/var/lib/docker/
停止docker服務
systemctl?stop?docker
這里比較奇怪的是,我的systemctl 一直失敗,也找不到原因,報錯如下:
Failed?to?execute?operation:?Launch?helper?exited?with?unknown?return?code?1
知道原因的小伙伴可以教一下怎么解決。如果大家試了上面的命令失敗了,就用下面這個命令:
service?docker?stop
解決方法:
1、將docker遷移到大容量的磁盤中
#?首先創建目錄 mkdir?-p?大磁盤目錄/docker/lib/ #?遷移 rsync?-avz?/var/lib/docker?大磁盤目錄/docker/lib/
2、編輯/etc/docker/daemon.json,添加參數,將docker的目錄遷移綁定
紅框是添加的參數
3、重載和重啟docker服務
systemctl?daemon-reload?&&?systemctl?restart?docker
但是systemctl我依然運行失敗,所以我是使用以下命令重啟docker的:
service?docker?restart
檢查docker是否綁定新目錄
docker?info
如果Docker Root Dir由/var/lib/docker變為你指定的目錄,說明遷移成功。
刪除docker舊目錄
rm?-rf?/var/lib/docker
推薦學習:《docker視頻教程》