docker container prune

読む時間の目安: 3 分

説明

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

API 1.25 以上  このコマンドを利用するには、クライアントとデーモンの API はともに、最低でも 1.25 である必要があります。 クライアント上においてdocker versionコマンドを実行して、クライアントとデーモンの API バージョンを確認してください。

利用方法

$ docker container prune [オプション]

本コマンドの利用例については、以下に示す 利用例の節 を参照してください。

オプション

名前/省略形 デフォルト 説明
--filter フィルター値を定めます。(たとえば 'until=<timestamp>')
--force , -f 確認のためのプロンプトを表示しません。

利用例

コンテナーの削除

$ 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

フィルター検索

フィルターフラグ(-f または --filter)の指定書式は「キー=値」というものです。 複数のフィルターが必要な場合は、フラグを複数指定します。 (たとえば --filter "foo=bar" --filter "bif=baz" など。)

現在サポートされているフィルターは以下のとおりです。

  • until (<timestamp>) - 指定されたタイムスタンプ以前に生成されたコンテナーのみ削除します。
  • label (label=<key>, label=<key>=<value>, label!=<key>, or label!=<key>=<value>) - 指定されたラベルが利用されている(あるいは label!=... 利用時はそのラベルが利用されていない)コンテナーのみを削除します。

until フィルターは Unix タイムスタンプから生成されるタイムスタンプや日付、Go 言語の時間文字列 (たとえば 10m, 1h30m)を、デーモンマシンの時刻との相対的な差異によって計算されます。 タイムスタンプから生成される日付の書式として、RFC3339Nano、RFC3339、2006-01-02T15:04:052006-01-02T15:04:05.9999999992006-01-02Z07:002006-01-02 などがサポートされます。 タイムスタンプの最後に Z やタイムゾーンオフセット +-00:00 が指示されていなかった場合は、デーモンが利用しているタイムゾーンが用いられます。 Unix タイムスタンプを指定する場合は seconds[.nanoseconds]([秒.ナノ秒])の書式とします。 ここで秒には 1970 年 1 月 1 日(UTC/GMT の真夜中)からの経過秒数値を指定し、うるう秒を含めません(Unix エポックまたは Unix タイムとも言われます)。 そしてナノ秒には、8桁以下の秒の少数値を指定します。

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 container コンテナーを管理します。
コマンド 説明
docker container attach ローカルの標準入出力やエラー出力を実行中コンテナーにアタッチします。
docker container commit コンテナーの変更に基づいて新たなイメージを生成します。
docker container cp コンテナーやローカルファイルシステム間でファイル、フォルダーをコピーします。
docker container create 新たなコンテナーを生成します。
docker container diff コンテナーのファイルシステムにおけるファイルやディレクトリの変更箇所を確認します。
docker container exec 実行中コンテナーにおいてコマンドを実行します。
docker container export コンテナーのファイルシステムを tar アーカイブとしてエクスポートします。
docker container inspect 1 つまたは複数のコンテナーについて詳細情報を表示します。
docker container kill 1 つまたは複数の実行コンテナーを Kill します。
docker container logs コンテナーのログを取得します。
docker container ls コンテナーを一覧表示します。
docker container pause 1 つまたは複数コンテナー内部における全プロセスを一時停止します。
docker container port コンテナーにおけるポート割り当て、あるいは特定の割り当てを一覧表示します。
docker container prune 停止中のコンテナーをすべて削除します。
docker container rename コンテナーの名前を変更します。
docker container restart 1 つまたは複数コンテナーを再起動します。
docker container rm 1 つまたは複数コンテナーを削除します。
docker container run 新たなコンテナー内においてコマンドを実行します。
docker container start 1 つまたは複数の停止中コンテナーを起動します。
docker container stats コンテナーのリソース利用統計を動的に表示します。
docker container stop 1 つまたは複数の実行中コンテナーを停止します。
docker container top コンテナーにおける実行プロセスを表示します。
docker container unpause 1 つまたは複数コンテナー内において停止中のプロセスを再開します。
docker container update 1 つまたは複数コンテナーの設定を更新します。
docker container wait 1 つまたは複数コンテナーが停止するまで待ち、各終了コードを表示します。