docker container update

描述更新一個或多個容器的配置
用法docker container update [OPTIONS] CONTAINER [CONTAINER...]
別名
docker update

描述

docker update 命令動態更新容器配置。您可以使用此命令來防止容器從其 Docker 主機佔用過多資源。透過一條命令,您可以對單個容器或多個容器施加限制。要指定多個容器,請提供以空格分隔的容器名稱或 ID 列表。

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

警告

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

選項

選項預設值描述
--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 份額 (--cpu-shares)

要將容器的 CPU 份額限制為 512,首先確定容器名稱或 ID。您可以使用 docker ps 查詢這些值。您也可以使用 docker run 命令返回的 ID。然後,執行以下操作:

$ docker update --cpu-shares 512 abebf7571666

更新具有 CPU 份額和記憶體的容器 (-m, --memory)

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

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

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

您可以使用 --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

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

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

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

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

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