[英]No space left on device due to docker/cron
我在Google雲上有一台基本服務器,該服務器每30分鍾通過cron運行一次docker容器。 我注意到docker命令停止工作,並且出現錯誤消息
docker: Error response from daemon: no space left on device.
然后我注意到即使我嘗試通過輸入cd path/
並點擊tab
來自動完成bash時也遇到此錯誤。 我發現存儲可能出了點問題,所以嘗試了df -h
並顯示了此信息:
Filesystem Size Used Avail Use% Mounted on
udev 860M 0 860M 0% /dev
tmpfs 175M 19M 157M 11% /run
/dev/sda1 9.7G 9.7G 0 100% /
tmpfs 871M 0 871M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 871M 0 871M 0% /sys/fs/cgroup
tmpfs 175M 0 175M 0% /run/user/1001
如您所見,由於某些原因,/ dev / sda1已100%充滿。 為什么會發生這種情況,我該如何解決?
我注意到有數千個退出的Docker容器,因此我使用以下命令刪除了它:
docker rm -v $(docker ps -a -q -f status=exited)
現在存儲使用率為61%,仍然太高。
在運行不需要保持停止狀態的容器時,最好使用docker run --rm ...
自動清理停止的容器。
如果容器生成了在docker volume ls
可見的卷,則在不再需要數據后,您可能希望清除這些卷。 在運行--rm
標志的情況下,匿名卷(顯示為長的唯一ID)將被自動刪除。
Docker還提供了以下命令:
docker system prune
您可以自動清理圖像,容器,網絡甚至卷。 請注意,在運行命令之前,尤其是在自動化之前,您應該花些時間了解此命令的功能。 在編寫此命令腳本時,可以使用-f
標志繞過提示。
在運行修剪之前,您可以檢查以下內容:
docker system df
以查看每個組件正在使用多少磁盤,並且每個組件都有自己的prune命令,例如docker container prune
和docker volume prune
,只需要清理一個區域。
有關prune命令的更多詳細信息,請參閱: https : //docs.docker.com/engine/reference/commandline/system_prune/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.