新しい方法:
spotify / docker-gcがトリックを再生します。
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc spotify/docker-gc
- 1時間以上前に終了したコンテナは削除されます。
- 削除後に残りのコンテナに属さない画像は削除されます
環境設定をサポートしています
複数のタグがある画像の強制削除
FORCE_IMAGE_REMOVAL=1
コンテナの強制削除
FORCE_CONTAINER_REMOVAL=1
最近終了したコンテナと画像をガベージコレクションから除外する
GRACE_PERIOD_SECONDS=86400
この設定により、GRACE_PERIOD_SECONDS秒前に作成されたイメージが削除されないようにすることもできます。
ドライラン
DRY_RUN=1
孤立したコンテナボリュームのクリーンアップ
CLEAN_UP_VOLUMES = 1
リファレンス:docker-gc
古い方法:
実行されていない古いコンテナを削除する
docker ps -a -q -f status=exited | xargs --no-run-if-empty docker rm
OR
docker rm $(docker ps -a -q)
実行されていないDockerコンテナーに関連付けられているすべてのイメージを削除する
docker images -q | xargs --no-run-if-empty docker rmi
dockerバージョン1.10.x以降の孤立したdockerボリュームのクリーンアップ
docker volume ls -qf dangling=true | xargs -r docker volume rm
期間に基づく
docker ps -a | grep "weeks ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
docker ps -a | grep "days ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
docker ps -a | grep "hours ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm