868
731

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

コマンドでDockerコンテナを停止・削除、イメージの削除をする

Last updated at Posted at 2018-05-24

起動しているすべてのDockerコンテナの停止や削除をするときに使っているコマンドが便利なので紹介したいと思います。
紹介するコマンドはDocker For Macで実行し確認しました。

TL;DR

  • 全コンテナ停止: docker stop $(docker ps -q)
  • 全コンテナ削除: docker rm $(docker ps -q -a)
  • 全イメージ削除: docker rmi $(docker images -q)

すべてのコンテナを停止する

docker stop $(docker ps -q)

docker stopに関しては説明不要かと思います。
$(docker ps -q)の部分に関してですが、
docker ps-qフラグを付けることでコンテナのIDのみを取得します。

例えば、以下のように起動しているコンテナがある場合

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
e2d41562fb71        ubuntu              "/bin/bash"         39 hours ago        Up 13 seconds                           affectionate_bassi
d886772499bd        ubuntu              "/bin/bash"         45 hours ago        Up 12 seconds                           gallant_curran
96b81bf5c03d        alpine              "/bin/sh"           47 hours ago        Up 11 seconds                           cocky_chebyshev

docker ps -qを実行すると以下のようにコンテナIDのみ表示されます。

e2d41562fb71
d886772499bd
96b81bf5c03d

このコンテナIDのみ取得する方法を利用しています。

docker stop $(docker ps -q)

は以下を実行しているのと同じです。

docker stop e2d41562fb71 d886772499bd 96b81bf5c03d

すべてのコンテナを削除する

要領は前項と同じです。

docker rm $(docker ps -q -a)

docker psでは起動しているコンテナのみ表示します。
停止しているコンテナも含めすべてのコンテナを表示するには-aフラグを用います。

ただし停止しているコンテナのみを削除するので、全てのコンテナを削除するには前項で紹介した方法を用いてコンテナをすべて停止する必要があります。

すべてのイメージを削除する

docker rmi $(docker images -q)

docker imagesでもpsコマンドと同じように-qフラグを用いることでイメージIDのみ取得することができます。

通常はコンテナが停止していないとDockerのイメージを削除することができませんが、-fフラグを用いることでコンテナが削除されていなくてもイメージを削除することができます。

docker rmi $(docker images -q) -f

ただしコンテナが起動している場合はイメージを削除できませんのでコンテナを停止する必要があります。

docker stop $(docker ps -q) && docker rmi $(docker images -q) -f

最後に

筆者は.bash_profileに以下を記述しaliasに登録しています。

alias docker-purge='docker stop $(docker ps -q) && docker rmi $(docker images -q) -f'

一つ一つコンテナの停止・削除、イメージの削除を行っていたときより非常に捗るようになりました。
本記事が皆様の一助になると幸いです。

最後までお読み頂きありがとうございました。不備や質問はコメント欄またはTwitter@shisama_までお願い致します。

868
731
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
868
731

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?