【docker】特定の名前のコンテナ(docker container)をまとめて削除する

  • Docker

docker rm でコンテナ ID やコンテナ名を羅列することでコンテナを削除できますが、数が多いと面倒です。コンテナ名で検索し、まとめて削除する方法です。

docker rm コンテナ名/IDなど コンテナ名/IDなど コンテナ名/IDなど...

特定の名前のコンテナをまとめて削除する

全コンテナを確認

まずは持っているコンテナを全て確認します。今回は停止中のコンテナも含めて確認したいので、-a オプションをつけています。

docker ps -a

削除したいコンテナ名でフィルタリング

次にオプションに -f name=あなたのコンテナ名 を加えフィルタをかけます。ちなみにこれは部分一致でのフィルタリングになります。フィルタは他にも色々あるので、名前以外でフィルタリングしたい方は公式ドキュメントで調べてみてください。

docker ps -a -f name=あなたのコンテナ名

上記で削除したいコンテナだけが表示されていることが確認できたら、下記コマンドで削除します。

例)「あなたのコンテナ名」の名前を含むコンテナを全て削除する

docker ps -a -q -f name=あなたのコンテナ名 | xargs docker rm
  • docker ps -q-q オプションはコンテナのIDのみを表示します。
  • xargs … 左辺の標準入力を受け取り、xargs 以降のコマンドをそれぞれに実行します。

フィルタリングしたものをそのまま xargs に渡すと余計な文字があるのでエラーになってしまいますが、-qオプションを付与することによりコンテナIDのみを表示することができます。

その ID を xargs に渡すことで docker rm {渡されたID} が実行され、コンテナをまとめて削除できます。