古いDockerコンテナを削除する方法
この質問は、https://stackoverflow.com/questions/17014263/should-i-be-concerned-about-excess-non-running-docker-containers に関連しています。
古いコンテナを削除する方法について悩んでいます。docker rm 3e552code34aでは1つのコンテナを削除できますが、すでにたくさんあります。docker rm --help
では、選択オプション(allとか、イメージ名でとか)が出てきません。
もしかしたら、これらのコンテナが保存されているディレクトリがあって、そこから手動で簡単に削除できるのでしょうか?
1159
3
Docker 1.13.x]1以降は、Docker container pruneが使用できます。
これにより、停止しているすべてのコンテナが削除され、すべてのプラットフォームで同じように動作するはずです。
また、Docker system pruneというものもあります。
これは、使用されていないすべてのコンテナ、ネットワーク、イメージ(ぶら下がっているものと参照されていないものの両方)、そしてオプションでボリュームを、1つのコマンドでクリーンアップします。
古いDockerバージョンでは、Dockerコマンドと他のUnixコマンドを組み合わせて、必要なものを得ることができます。ここでは、数週間前の古いコンテナをクリーンアップする方法の例を紹介します。
この例は https://twitter.com/jpetazzo/status/347431091415703552 から引用しています。
もう一つの方法は、Guillaume J. Charmes氏から教えてもらったものです(クレジットはこちら)。
は、エレガントな方法ですべてのコンテナを削除します。
Bartosz Bilicki氏によるWindows用のものです。
PowerShell用です。
Docker 1.13 (Q4 2016)でのアップデート、クレジットはVonC(このスレッドの後半)です。
docker system prune
では、使用されていないデータがすべて削除されます(つまり、停止しているコンテナ、コンテナのないボリューム、コンテナのないイメージの順に削除されます)。PR 26108][3]およびcommit 86de7c0を参照してください。これらのコマンドは、Dockerデーモンのデータがディスク上でどのくらいの容量を占めているかを簡単に視覚化し、「不要な」余分なものを簡単にクリーンアップできるようにするために、いくつかの新しいコマンドを導入しています。
[3]: https://github.com/docker/docker/pull/26108
まず、コンテナを削除する前に、実行中のコンテナを停止します。
実行中のコンテナを削除します。
stop
ではなく、
killを使うこともできます。私の場合は
stop` を使います。なぜなら、毎回新しいコンテナを作るのではなく、再実行することが多いので、きれいにシャットダウンするようにしているからです。注意:コンテナを停止しようとすると、エラーが発生します。
すべてのコンテナを削除する