docker rm
説明
1 つまたは複数のコンテナーを削除します。
利用方法
$ docker rm [オプション] CONTAINER [CONTAINER...]
本コマンドの利用例については、以下に示す 利用例の節 を参照してください。
オプション
| 名前/省略形 | デフォルト | 説明 |
--force , -f |
実行中のコンテナーを(SIGKILL を用いて)強制的に削除します。 | |
--link , -l |
指定されたリンクを削除します。 | |
--volumes , -v |
コンテナーに関連づいた匿名ボリュームを削除します。 |
利用例
コンテナーの削除
/redisリンクとして参照されているコンテナーを削除します。
$ docker rm /redis
/redis
デフォルトプリッジネットワーク上での--linkを使ったリンク削除
以下は、デフォルトブリッジネットワーク上の/webappコンテナーと/redisコンテナーとの間にあるリンクを削除します。
これによって両コンテナー間のネットワーク接続がすべて削除されます。
これは--linkフラグがユーザー指定ネットワークに対して用いられている場合には適用されません。
$ docker rm --link /webapp/redis
/webapp/redis
実行中コンテナーの強制削除
以下のコマンドは実行中コンテナーを強制削除します。
$ docker rm --force redis
redis
redisというリンクとして参照されているコンテナーの内部にて、メインのプロセスがSIGKILLを受け取り、その次にコンテナーが削除されます。
停止中コンテナーの全削除
停止中のコンテナーをすべて削除するには docker container prune コマンドを使います。
あるいは docker system prune コマンドを使えば、未使用のコンテナー削除に加えて、(未使用の)イメージやネットワークといった Docker リソースも削除できます。
またdocker psコマンドにおいて-qまたは--quietオプションを利用すると、コンテナー ID の一覧を取得できるため、この一覧をdocker rmコマンドの引数として利用する方法もあります。
このようにコマンドを組み合わることは柔軟性を持った方法になりますが、シェルが提供する機能に依存するため可搬性に欠けます。 利用しているシェルによって細かな文法が異なるかもしれません。 Windows 上においてこの方法を利用する場合には PowerShell や Bash を用いるようにしてください。
以下に示す利用例ではdocker ps -qによって、存在している(--filter status=exited)コンテナーの ID 一覧を取得して、docker rmコマンドを用いてそれらのコンテナーを削除するものです。
$ docker rm $(docker ps --filter status=exited -q)
あるいは Linux のxargsを使って以下のようにします。
$ docker ps --filter status=exited -q | xargs docker rm
コンテナーとそのボリュームの削除
$ docker rm -v redis
redis
上のコマンドはコンテナーを削除した上で、これに関連するボリュームもすべて削除します。 なおボリュームに名前が指定されている場合、そのボリュームは削除されません。
コンテナーの削除と特定ボリュームの削除
$ docker create -v awesome:/foo -v /bar --name hello redis
hello
$ docker rm -v hello
上の例において/fooに対するボリュームはそのまま残りますが、/barに対するボリュームは削除されます。
--volumes-fromによって継承されたボリュームに対しても、同じ動作になります。
上位コマンド
| コマンド | 説明 |
|---|---|
| docker | Docker CLI の基本コマンド |