2017-05-31 44 views
1

我對存儲空間的問題很少。我刪除了幾個大文件,如日誌文件(查找大文件的unix後)。如何強制Docker在手動刪除卷和容器中的文件後釋放存儲空間?

問題是手動刪除Docker的一些文件(在/ var/lib/docker/...中)。刪除Docker文件後,我可以看到剩下的空間不會改變。 Docker不釋放空間。

我重新啓動服務Docker和我問題persit。

如何強制Docker從(devicemapper,volume,images,...)釋放空間?

+0

參見:https://stackoverflow.com/q/45798076/562769 –

回答

1

碼頭工清理工作是不存在的,你基本上負責自己做。如this blog-post中指出的那樣,我們可以使用第三方腳本,例如:docker-clean來清理一些混亂的碼頭工人。

2

這取決於你使用的是什麼版本的泊塢窗,如果使用的是> 1.13,那麼你可以使用:

docker system df 

docker system df -v 

^^這些將展示磁盤空間被利用。

可以使用prune命令清理:

docker system prune -af 

^^這一切修剪是&最具破壞性的。 或者你可以使用docker image prunedocker volume prune

2

隨着最新版本泊塢窗,你可以看到使用的空間:

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/* 
+1

不過要小心。 「碼頭修剪」非常貪婪,甚至可能刪除太多。我沒有想到將停止的容器刪除,而只是他們的形象。 – k0pernikus

相關問題