docker update
読む時間の目安: 2 分
説明
1 つまたは複数コンテナーの設定を更新します。
利用方法
$ docker update [オプション] CONTAINER [CONTAINER...]
追加説明
docker update
コマンドはコンテナー設定を動的に変更します。
このコマンドを使って、コンテナーによる Docker ホストリソースの過度の消費を抑えることができます。
本コマンドの 1 度の実行により、1 つのコンテナーだけでなく複数のコンテナーに対しても設定を行うことができます。
複数コンテナーを対象とする場合は、コンテナー名またはコンテナー ID を空白文字で区切ったリストとして指定します。
--kernel-memory
オプションだけは例外ですが、本コマンドのそれ以外のオプションは、実行中および停止中のコンテナーに対して指定することができます。
カーネルバージョンが 4.6 よりも古い場合、本コマンドは停止しているコンテナーに対してのみ、あるいはカーネルメモリが初期化されている実行中コンテナーに対してのみ、設定変更を行うことができます。
警告
docker update
コマンドとdocker container update
コマンドは Windows コンテナーに対してはサポートされていません。
本コマンドの利用例については、以下に示す 利用例の節 を参照してください。
オプション
名前/省略形 | デフォルト | 説明 |
--blkio-weight |
ブロック I/O。(相対的な重みづけ)、10 から 1000、0 は無効化。(デフォルトは 0) | |
--cpu-period |
CPU の CFS(Completely Fair Scheduler)間隔を制限します。 | |
--cpu-quota |
CPU の CFS(Completely Fair Scheduler)クォータを制限します。 | |
--cpu-rt-period |
API 1.25 以上 CPU へのリアルタイムアクセス時間をマイクロ秒で制限します。 |
|
--cpu-rt-runtime |
API 1.25 以上 CPU へのリアルタイムアクセスランタイムをマイクロ秒で制限します。 |
|
--cpu-shares , -c |
CPU 配分。(相対的な重みづけ) | |
--cpus |
API 1.29 以上 CPU 数。 |
|
--cpuset-cpus |
利用を許容する CPU 数。(0-3、0,1) | |
--cpuset-mems |
利用を許容するメモリ数。(0-3、0,1) | |
--kernel-memory |
カーネルメモリ上限。 | |
--memory , -m |
メモリ上限。 | |
--memory-reservation |
メモリのソフトリミット。 | |
--memory-swap |
メモリとスワップの総量を制限します。'-1' 設定時はスワップ無制限。 | |
--pids-limit |
API 1.40 以上 コンテナーの PID 制限を調整します。(-1 により無制限) |
|
--restart |
コンテナー終了時に適用する再起動ポリシー。 |
利用例
以下の各節では本コマンドの利用方法を示します。
CPU 共有の設定変更
cpu-shares(CPU 共有)値の上限を 512 に制限するため、まずはコンテナー名またはコンテナー ID を確認します。
この値はdocker ps
からわかります。
コンテナー ID はdocker run
コマンドの実行直後にも表示されます。
そして以下のコマンドを実行します。
$ docker update --cpu-shares 512 abebf7571666
CPU 共有およびメモリの設定変更
複数のコンテナーに対して複数リソースに対する設定を更新します。
$ 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」フラグを指定していた場合、このコンテナーの再起動ポリシーを更新することはできません。
AutoRemove
とRestartPolicy
は同時に指定することができません。
上位コマンド
コマンド | 説明 |
---|---|
docker | Docker CLI の基本コマンド |