解決方法: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時,經常會建立新映像和新容器,在新容器中又會安裝各種包,這些東西不是虛擬的,而是實實在存於我們的磁碟中,預設在/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影片教學》
以上是docker儲存空間不足怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!