目次

docker rm コマンド入門:コンテナの削除(-f、-v、container prune)

docker rm は停止済みのコンテナを削除します。実行中のコンテナは -f で強制削除できます。コンテナの作成、停止、削除までの流れはコンテナのライフサイクルを参照してください。

構文

docker rm [オプション] コンテナ [コンテナ...]

オプション

オプション説明
-f, --force実行中のコンテナを強制削除します(SIGKILL を使用)
-l, --link指定したリンクを削除します
-v, --volumesコンテナに関連付けられた匿名 Volume も削除します
--filter 条件コンテナを絞り込みます。例:until=<timestamp>

docker container prune はすべての停止済みコンテナを削除します。-f を付けると確認を省略できます。

例

停止済みと実行中のコンテナを削除する

$ docker rm app
Error response from daemon: cannot remove container "app": container is running: stop the container before removing or force remove

$ docker rm -f app
app

$ docker rm job
job
  • 実行中の app はそのままでは削除できません。エラーメッセージは、先に停止するか強制削除するよう案内しています。
  • docker rm -f app は実行中のコンテナを正常に削除し、コンテナ名 app を出力します。
  • 停止済みの job は -f を付けずに削除できます。

匿名 Volume も一緒に削除する

$ docker volume ls -q | wc -l
2

$ docker rm -f -v withvol
withvol

$ docker volume ls -q | wc -l
1
  • 削除前は Volume が 2 個あります。-v を付けて withvol を削除すると、1 個になります。
  • -v はコンテナに関連付けられた匿名 Volume を削除するオプションです。

停止済みのコンテナをすべて整理する

$ docker ps -a --format '{{.Names}} {{.Status}}'
old2 Exited (0) Less than a second ago
old1 Exited (0) 1 second ago
registry Up About a minute

$ docker container prune -f
Deleted Containers:
1634aa3747102ed4016d3695d9fbe33f9ff7310fde9c5726ef86a340f8d22acb
a3ec6e520acc56ef9f9d78452b104675b7afd070a8e9bd1ab0a010b34e2fe8a5

Total reclaimed space: 8.192kB
  • 削除前には、停止済みの old2、old1 と、実行中の registry があります。
  • docker container prune -f は確認を求めず、削除したコンテナの ID と回収した容量を出力します。
  • このコマンドは停止済みコンテナを削除します。実行中の registry は削除対象に含まれません。

コマンド置換の結果がない場合

$ docker rm $(docker ps -aq --filter status=exited)
docker: 'docker rm' requires at least 1 argument

Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]

See 'docker rm --help' for more information
  • docker ps -aq --filter status=exited の出力がない場合、コマンド置換からコンテナ引数は渡されません。
  • そのため docker rm は少なくとも 1 つの引数が必要だというエラーを返します。一括整理には docker container prune -f を使えます。

コンテナの終了後に自動削除する

$ docker run --rm alpine:3.23 echo 'removed when done'
removed when done

$ docker ps -a --format '{{.Names}} {{.Status}}'
registry Up About a minute
  • --rm を付けると、コマンドの終了後にコンテナが自動削除されます。
  • 次のコンテナ一覧には実行中の registry だけが表示され、直前に実行したコンテナは表示されません。

関連する章

練習問題

練習:実行中の app コンテナを強制削除し、関連付けられた匿名 Volume も一緒に削除してください。

解答
docker rm -f -v app

よくある質問

docker rm で実行中のコンテナを削除できないのはなぜですか?

実行中のコンテナは先に停止するか、docker rm -f で強制削除する必要があります。-f は SIGKILL を使用します。

コンテナの削除時に匿名 Volume も一緒に削除するにはどうすればよいですか?

-v を付けます。例:docker rm -f -v withvol。この例では Volume の数が 2 個から 1 個に減ります。

停止済みコンテナが見つからない場合、コマンド置換はどうなりますか?

docker rm $(docker ps -aq --filter status=exited) はコンテナ名または ID が渡されないため、少なくとも 1 つの引数が必要だというエラーを返します。

コンテナの終了時に自動削除するにはどうすればよいですか?

docker run --rm を実行します。この例では、コンテナの実行後に docker ps -a で表示されなくなります。

更新日 2026年10月26日