docker update

説明

1つまたは複数コンテナの設定を 更新(update) します。

使い方

$ docker update [OPTIONS] CONTAINER [CONTAINER...]

補足説明

docker update コマンドはコンテナの設定を動的に更新します。このコマンドを使えば、Docker ホスト上でコンテナが多くのリソースを消費するの防ぎます。コマンドを1度実行するだけで、1つまたは複数のコンテナに対して制限を設けられます。複数のコンテナを指定するには、コンテナ名か ID を空白(スペース)区切りで指定します。

--kernel-memory 値以外は、コンテナを実行中でも停止中でもオプションを指定できます。 --kernel-memory は停止したコンテナに対してのみ指定できます。停止したコンテナに対して docker update を実行したら、次のコンテナ再起動時に値が反映します。

警告

Windows コンテナでは docker updatedocker container update はサポートしていません。

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

オプション

名前, 省略形

デフォルト

説明

--blkio-weight

ブロック I/O ウエイト(相対値)を 10 ~ 1000 までの値でウエイトを設定(デフォルト 0)

--cpu-period

CPU CFS (Completely Fair Scheduler) の間隔を設定

--cpu-quota

CPU CFS (Completely Fair Scheduler) のクォータを設定

--cpu-rt-period

【API 1.25+】 CPU real-time period 制限をマイクロ秒で指定

--cpu-rt-runtime

【API 1.25+】 CPU real-time runtime 制限をマイクロ秒で指定

--cpu-shares , -c

CPU 共有(相対値)

--cpus

【API 1.25+】 CPU 数

--cpuset-cpus

実行する CPU の割り当て(0-3, 0,1)

--cpuset-mems

実行するメモリ・ノード(MEM)の割り当て(0-3, 0,1)

--kernel-memory

カーネル・メモリ上限

--memory , -m

メモリ上限

--memory-reservation

メモリのソフト上限

--memory-swap

整数値の指定はメモリにスワップ値を追加。 -1 は無制限スワップを有効化

--pids-limit

コンテナの pids 制限を調整( -1 は無制限)

--restart

コンテナ終了時に適用する再起動ポリシー

使用例

以下のセクションはコマンドの使い方を説明します。

コンテナの cpu-shares を更新

コンテナの CPU 共有上限を 512 に設定するには、まずコンテナ名か ID を確認します。 docker ps で値を確認できます。あるいは docker run コマンド実行時に ID を返すので、ここでも確認できます。それから次のように実行します。

$ docker update --cpu-shares 512 abebf7571666

コンテナの cpu-shares とメモリを更新

複数のコンテナに対して複数のリソースを更新します。

$ docker update --cpu-shares 512 -m 300M abebf7571666 hopeful_morse

コンテナのカーネル・メモリ制限を更新

コンテナのカーネル・メモリ制限は --kernel-memory オプションを使って更新できます。カーネルバージョン 4.6 よりも古ければ、 --kernel-memory でコンテナを起動したコンテナのみ、オプションで更新できます。 --kernel-memory を指定せずに起動したコンテナは、カーネルメモリを更新する前にコンテナの停止が必要です。

注釈

--kernel-memory オプションは Docker 20.10 以降では非推奨になりました。

たとえば、コンテナを次のコマンドで実行したとします。

$ docker run -dit --name test --kernel-memory 50M ubuntu bash

実行中のコンテナはカーネルメモリを更新できます。

$ docker update --kernel-memory 80M test

コンテナの初期化時にカーネルメモリを指定せずに起動した場合は、こちらです。

$ docker run -dit --name test2 --memory 300M ubuntu bash

実行中のコンテナ test2 に対するカーネルメモリ更新は失敗します。 --kernel-memory 設定を更新する前に、コンテナの停止が必要です。コンテナを次に起動すると、コンテナは新しい値を使います。

カーネルバージョン 4.6 (以上)では、この制限はありません。他のオプションと同じように --kernel-memory を使えます。

コンテナの再起動ポリシーを更新

実行中のコンテナに対し、コンテナの再起動ポリシーを変更できます。新しい再起動ポリシーは、コンテナに対して docker update を実行後、直ちに反映されます。

1つまたは複数のコンテナに対する再起動ポリシーを更新します。。

$ docker update --restart=on-failure:3 abebf7571666 hopeful_morse

コンテナに --rm フラグを付けて起動した場合は、再起動ポリシーを変更できないため、注意が必要です。コンテナには AutoRemoveRestartPolicy を同時に指定できません。

親コマンド

コマンド

説明

docker

Docker CLI の基本コマンド