docker update¶
補足説明¶
docker update
コマンドはコンテナの設定を動的に更新します。このコマンドを使えば、Docker ホスト上でコンテナが多くのリソースを消費するの防ぎます。コマンドを1度実行するだけで、1つまたは複数のコンテナに対して制限を設けられます。複数のコンテナを指定するには、コンテナ名か ID を空白(スペース)区切りで指定します。
--kernel-memory
値以外は、コンテナを実行中でも停止中でもオプションを指定できます。 --kernel-memory
は停止したコンテナに対してのみ指定できます。停止したコンテナに対して docker update
を実行したら、次のコンテナ再起動時に値が反映します。
警告
Windows コンテナでは docker update
と docker container update
はサポートしていません。
コマンドの使用例は、以下の 使用例のセクション をご覧ください。
オプション¶
名前, 省略形 |
デフォルト |
説明 |
---|---|---|
|
ブロック I/O ウエイト(相対値)を 10 ~ 1000 までの値でウエイトを設定(デフォルト 0) |
|
|
CPU CFS (Completely Fair Scheduler) の間隔を設定 |
|
|
CPU CFS (Completely Fair Scheduler) のクォータを設定 |
|
|
【API 1.25+】 CPU real-time period 制限をマイクロ秒で指定 |
|
|
【API 1.25+】 CPU real-time runtime 制限をマイクロ秒で指定 |
|
|
CPU 共有(相対値) |
|
|
【API 1.25+】 CPU 数 |
|
|
実行する CPU の割り当て(0-3, 0,1) |
|
|
実行するメモリ・ノード(MEM)の割り当て(0-3, 0,1) |
|
|
カーネル・メモリ上限 |
|
|
メモリ上限 |
|
|
メモリのソフト上限 |
|
|
整数値の指定はメモリにスワップ値を追加。 |
|
|
コンテナの pids 制限を調整( -1 は無制限) |
|
|
コンテナ終了時に適用する再起動ポリシー |
使用例¶
以下のセクションはコマンドの使い方を説明します。
コンテナのカーネル・メモリ制限を更新¶
コンテナのカーネル・メモリ制限は --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
フラグを付けて起動した場合は、再起動ポリシーを変更できないため、注意が必要です。コンテナには AutoRemove
と RestartPolicy
を同時に指定できません。