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