我對存儲空間的問題很少。我刪除了幾個大文件,如日誌文件(查找大文件的unix後)。如何強制Docker在手動刪除卷和容器中的文件後釋放存儲空間?
問題是手動刪除Docker的一些文件(在/ var/lib/docker/...中)。刪除Docker文件後,我可以看到剩下的空間不會改變。 Docker不釋放空間。
我重新啓動服務Docker和我問題persit。
如何強制Docker從(devicemapper,volume,images,...)釋放空間?
我對存儲空間的問題很少。我刪除了幾個大文件,如日誌文件(查找大文件的unix後)。如何強制Docker在手動刪除卷和容器中的文件後釋放存儲空間?
問題是手動刪除Docker的一些文件(在/ var/lib/docker/...中)。刪除Docker文件後,我可以看到剩下的空間不會改變。 Docker不釋放空間。
我重新啓動服務Docker和我問題persit。
如何強制Docker從(devicemapper,volume,images,...)釋放空間?
碼頭工清理工作是不存在的,你基本上負責自己做。如this blog-post中指出的那樣,我們可以使用第三方腳本,例如:docker-clean來清理一些混亂的碼頭工人。
這取決於你使用的是什麼版本的泊塢窗,如果使用的是> 1.13,那麼你可以使用:
docker system df
和
docker system df -v
^^這些將展示磁盤空間被利用。
可以使用prune
命令清理:
docker system prune -af
^^這一切修剪是&最具破壞性的。 或者你可以使用docker image prune
或docker volume prune
等
隨着最新版本泊塢窗,你可以看到使用的空間:
docker system df
,並修剪它:
docker system prune
以上命令組合了卷,容器,網絡和映像的修剪命令:
docker volume prune
docker container prune
docker image prune
docker network prune
所有這些有--help option
。
-O-
在舊版本的泊塢窗,我跑了劇本:
#!/bin/bash
# Remove dead containers (and their volumes)
docker ps -f status=dead --format '{{ .ID }}' | xargs -r docker rm -v
# Remove dangling volumes
docker volume ls -qf dangling=true | xargs -r docker volume rm
# Remove untagged ("<none>") images
docker images --digests --format '{{.Repository}}:{{.Tag}}@{{.Digest}}' | sed -rne 's/([^>]):<none>@/\[email protected]/p' | xargs -r docker rmi
# Remove dangling images
docker images -qf dangling=true | xargs -r docker rmi
# Remove temporary files
rm -f /var/lib/docker/tmp/*
不過要小心。 「碼頭修剪」非常貪婪,甚至可能刪除太多。我沒有想到將停止的容器刪除,而只是他們的形象。 – k0pernikus
參見:https://stackoverflow.com/q/45798076/562769 –