Masayan tech blog.

  1. ブログ記事一覧>
  2. Dockerで不要なイメージやコンテナ等のリソースをクリーンアップする方法

Dockerで不要なイメージやコンテナ等のリソースをクリーンアップする方法

公開日

なぜリソースのクリーンアップが必要か?

docker-composeでイメージをビルドしたり、コンテナを起動する際にリソース不足で失敗することがあります。

エラー自体は、ディスク容量が不足していることがたいていの理由なので、Docker DesktopでResourcesから増やすことで回避できます。

この対処自体も限界があるので、定期的に本記事で紹介するコマンドたちを実行してクリーンアップしておくのが吉です。

リソースはまとめて一括で削除するか、個別のリソースを指定して削除するかの2通りのやり方があります

全てのリソースを削除

docker system prune

上記のコマンドにより以下のデータがクリーンアップされます

  • 停止しているコンテナ(= compose downしていない)
  • 使用されていないイメージ
  • 使用されていないネットワーク
  • 過去にイメージをbuildした際に作成されたキャッシュ

未使用のボリューム(そのボリュームを使用しているコンテナがないボリューム)は、上記コマンドでは削除されません。ボリュームも併せて削除したい場合は、以下のようにします

docker system prune --volumes

公式によると、ボリュームを参照するコンテナーがないだけで、本来は削除したくない重要なデータが誤って削除されてしまうことを防止するためとのこと

リソースを指定して削除

コンテナ

未使用(停止中)のコンテナをすべて削除

docker container prune

イメージ

未使用のイメージをすべて削除

タグ付けされておらず、全コンテナ(動いているか止まっているかは問わない)から参照されていないイメージが削除されます

docker image prune

-aをオプションで付けると、タグ付けされていても、コンテナから使用されていないイメージをすべて削除することが可能です

タグについては、こちらの内容を参照ください

http://docs.docker.jp/v1.12/compose/compose-file.html#build

ボリューム

未使用のローカルボリューム(どのコンテナからも参照されていないボリューム)をすべて削除

docker volume prune

ネットワーク

未使用のネットワーク(どのコンテナーからも参照されていないネットワーク)をすべて削除

docker network prune

ビルドキャッシュ

未使用のビルドキャッシュをすべて削除

docker builder prune

まとめ

いかがでしたでしょうか。本記事では、Dockerで不要なイメージやコンテナ等のリソースをクリーンアップする方法について紹介しています。ぜひ参考にしてみてください。