docker container update

說明更新一個或多個容器的設定
用法docker container update [選項] 容器 [容器...]
別名
docker update

說明

docker update 指令會動態更新容器設定。您可以使用這個指令來防止容器消耗 Docker 主機過多的資源。使用單一指令,您可以設定單一或多個容器的限制。若要指定多個容器,請提供以空格分隔的容器名稱或 ID 列表。

除了 --kernel-memory 選項外,您可以在執行中或已停止的容器上指定這些選項。在核心版本早於 4.6 的情況下,您只能在已停止的容器或已初始化核心記憶體的執行中容器上更新 --kernel-memory

警告

Windows 容器不支援 docker updatedocker container update 指令。

選項

選項預設值說明
--blkio-weight區塊 IO(相對權重),介於 10 到 1000 之間,或 0 表示停用(預設為 0)
--cpu-period限制 CPU CFS(完全公平排程器)週期
--cpu-quota限制 CPU CFS(完全公平排程器)配額
--cpu-rt-periodAPI 1.25+ 限制 CPU 即時週期(以微秒為單位)
--cpu-rt-runtimeAPI 1.25+ 限制 CPU 即時執行時間(以微秒為單位)
-c, --cpu-sharesCPU 共享(相對權重)
--cpusAPI 1.29+ CPU 數量
--cpuset-cpus允許執行的 CPU(0-3、0,1)
--cpuset-mems允許執行的記憶體節點(0-3、0,1)
-m, --memory記憶體限制
--memory-reservation記憶體軟性限制
--memory-swap交換空間限制等於記憶體加交換空間:-1 表示啟用無限交換空間
--pids-limitAPI 1.40+ 調整容器 pids 限制(設定 -1 表示無限制)
--restart容器結束時套用的重新啟動策略

範例

以下章節說明如何使用此指令。

更新容器的 cpu-shares (--cpu-shares)

若要將容器的 cpu-shares 限制為 512,首先要確認容器的名稱或 ID。您可以使用 docker ps 找到這些值。您也可以使用 docker run 指令返回的 ID。然後,執行以下操作

$ docker update --cpu-shares 512 abebf7571666

使用 cpu-shares 和記憶體 (-m, --memory) 更新容器

若要更新多個容器的多個資源配置

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

更新容器的核心記憶體限制 (--kernel-memory)

您可以使用 --kernel-memory 選項更新容器的核心記憶體限制。在核心版本早於 4.6 的情況下,只有在容器以 --kernel-memory 啟動時,才能在執行中的容器上更新此選項。如果容器啟動時沒有使用 --kernel-memory,則需要先停止容器,才能更新核心記憶體。

注意事項

自 Docker 20.10 起,--kernel-memory 選項已棄用。

例如,如果您使用以下指令啟動容器

$ 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

更新容器的重新啟動策略 (--restart)

您可以在執行中的容器上變更容器的重新啟動策略。在您對容器執行 docker update 後,新的重新啟動策略會立即生效。

若要更新一個或多個容器的重新啟動策略

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

請注意,如果容器是使用 --rm 旗標啟動的,則無法更新其重新啟動策略。對於容器而言,AutoRemoveRestartPolicy 互斥。