2017-05-31 1 views
1

私はストレージスペースに関する問題はほとんどありません。私はログファイル(大きなファイルのunixを見つけた後)のような大きなファイルを削除しませんでした。ボリュームとコンテナ内のファイルを手動で削除した後にDockerがストレージスペースを解放する方法を教えてください。

問題は、Dockerの一部のファイル(/ var/lib/docker/...内)を手動で削除することです。 Dockerファイルを削除した後、左のスペースが変わらないことがわかります。ドッカーはスペースを解放しません。

サービスDockerを再起動しても問題は解決しません。

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 pruneまたはdocker volume pruneなど

2

を使用することができます。

docker system df

をし、それを剪定:

docker system prune

上記のコマンドは、ボリューム、コンテナ、ネットワーク、およびイメージ用に存在する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

は、しかし注意してください。 'docker prune'は非常に貪欲で、あまりにも多くを削除する可能性があります。私は停止されたコンテナが削除されるのではなく、そのイメージだけが削除されるとは思わなかった。 – k0pernikus

関連する問題