docker container prune

説明

すべての停止中のコンテナを削除します。

【API 1.25+】 このコマンドを使うには、クライアントとデーモン API の両方が、少なくとも 1.30 の必要があります。クライアントとデーモンの API バージョンを調べるには、クライアント上で docker version コマンドを使います。

使い方

$ docker container prune [OPTIONS]

補足説明

停止中のコンテナを全て削除します。

コマンドの使用例は、以下の 使用例のセクション をご覧ください。

オプション

名前, 省略形 デフォルト 説明
--filter   フィルタ値を指定(例 until=<タイムスタンプ>
--force, -f   確認のプロンプトを表示しない

使用例

不要なコンテナの 削除(prune)

$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
4a7f7eebae0f63178aff7eb0aa39cd3f0627a203ab2df258c1a00b456cf20063
f98f9c2aa1eaf727e4ec9c0283bc7d4aa4762fbdba7f26191f26c97f64090360

Total reclaimed space: 212 B

フィルタリング

フィルタリングのフラグ( --filter )書式は「key=value」です。複数のフィルタがある場合は、フラグを複数回渡します(例 --filter "foo=bar" --filter "bif=baz" )。

現在サポートしているフィルタは、こちらです。

  • until ( <timestamp> まで ) - 指定したタイムスタンプより前に作成したコンテナのみ削除します。
  • label ( label=<key>label=<key>=<value>label!=<key>label!=<key>=<value> ) - 指定したラベルのコンテナのみ削除します(または、 label!=... が使われる場合は、ラベルがない場合 )

until でフィルタできるのは Unix タイムスタンプ、日付形式のタイムスタンプ、あるいはデーモンが動作しているマシン上の時刻からの相対時間を、 Go duration 文字列(例: 10m1h3-m )で計算します。日付形式のタイムスタンプがサポートしているのは、RFC3339Nano 、 RFC3339 、 2006-01-02T15:04:052006-01-02T15:04:05.9999999992006-01-02Z07:002006-01-02 です。タイムスタンプの最後にタイムゾーンオフセットとして Z+-00:00 が指定されなければ、デーモンはローカルのタイムゾーンを使います。Unix タイムスタンプを 秒[.ナノ秒] で指定すると、秒数は 1970 年 1 月 1 日(UTC/GMT 零時)からの経過時間ですが、うるう秒(別名 Unix epoch や Unix time)を含みません。また、オプションで、9桁以上 .ナノ秒 フィールドは省略されます。

label フィルタは2つの形式に対応します。1つは label=...label=<key> または label=<key>=<value> )であり、指定したラベルを持つコンテナを削除します。もう1つの形式は label!=...label!=<key> または label!=<key>=<value> )であり、指定たラベルがないコンテナを削除します。

以下は5分以上前に作成されたコンテナを削除します。

$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'

CONTAINER ID        IMAGE               COMMAND             CREATED AT                      STATUS
61b9efa71024        busybox             "sh"                2017-01-04 13:23:33 -0800 PST   Exited (0) 41 seconds ago
53a9bc23a516        busybox             "sh"                2017-01-04 13:11:59 -0800 PST   Exited (0) 12 minutes ago

$ docker container prune --force --filter "until=5m"

Deleted Containers:
53a9bc23a5168b6caa2bfbefddf1b30f93c7ad57f3dec271fd32707497cb9369

Total reclaimed space: 25 B

$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'

CONTAINER ID        IMAGE               COMMAND             CREATED AT                      STATUS
61b9efa71024        busybox             "sh"                2017-01-04 13:23:33 -0800 PST   Exited (0) 44 seconds ago

以下は、 2017-01-04T13:10:00 の前に作成されたコンテナを削除します。

$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'

CONTAINER ID        IMAGE               COMMAND             CREATED AT                      STATUS
53a9bc23a516        busybox             "sh"                2017-01-04 13:11:59 -0800 PST   Exited (0) 7 minutes ago
4a75091a6d61        busybox             "sh"                2017-01-04 13:09:53 -0800 PST   Exited (0) 9 minutes ago

$ docker container prune --force --filter "until=2017-01-04T13:10:00"

Deleted Containers:
4a75091a6d618526fcd8b33ccd6e5928ca2a64415466f768a6180004b0c72c6c

Total reclaimed space: 27 B

$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'

CONTAINER ID        IMAGE               COMMAND             CREATED AT                      STATUS
53a9bc23a516        busybox             "sh"                2017-01-04 13:11:59 -0800 PST   Exited (0) 9 minutes ago

親コマンド

コマンド 説明
docker Docker CLI のベースコマンド。

関連コマンド

コマンド 説明
docker container attach ローカルの標準入出、標準出力、標準エラーのストリームに、実行中のコンテナを 接続(attach)
docker container commit コンテナの変更から新しいイメージを作成
docker container cp コンテナとローカルファイルシステム間で、ファイルやフォルダを コピー(copy)
docker container create 新しいコンテナを 作成(create)
docker container diff コンテナのファイルシステム上で、ファイルやディレクトリの変更を調査
docker container exec 実行中のコンテナ内でコマンドを実行
docker container export コンテナのファイルシステムを tar アーカイブとして 出力(export)
docker container inspect 1つまたは複数コンテナの情報を表示
docker container kill 1つまたは複数の実行中コンテナを 強制停止(kill)
docker container logs コンテナのログを取得
docker container ls コンテナ一覧
docker container pause 1つまたは複数コンテナ内の全てのプロセスを 一時停止(pause)
docker container port ポート 割り当て(mapping) の一覧か、特定のコンテナに対する 割り当て(mapping)
docker container prune すべての停止中のコンテナを削除
docker container rename コンテナの 名前変更(rename)
docker container restart 1つまたは複数のコンテナを再起動
docker container rm 1つまたは複数のコンテナを 削除(remove)
docker container run 新しいコンテナでコマンドを 実行(run)
docker container start 1つまたは複数のコンテナを 開始(start)
docker container stats コンテナのリソース使用統計情報をライブストリームで表示
docker container stop 1つまたは複数の実行中コンテナを 停止(stop)
docker container top コンテナで実行中のプロセスを表示
docker container unpause 1つまたは複数コンテナの 一時停止を解除(unpause)
docker container update 1つまたは複数コンテナの設定を 更新(update)
docker container wait 1つまたは複数コンテナが停止するまでブロックし、終了コードを表示