Docker 容器更新

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

描述

docker update命令动态更新容器配置。 您可以使用此命令来防止容器消耗过多 资源。只需一个命令,您就可以将 对单个容器或多个容器的限制。要指定多个容器, 提供以空格分隔的容器名称或 ID 列表。

除了--kernel-memory选项中,您可以指定这些 选项。在内核版本低于 4.6,您只能更新--kernel-memory在已停止的容器上或 初始化了内核内存的正在运行的容器。

警告

docker updatedocker container update不支持命令 适用于 Windows 容器。

选项

选择违约描述
--blkio-weight块 IO (相对权重),介于 10 和 1000 之间,或 0 表示禁用(默认为 0)
--cpu-period限制 CPU CFS (Completely Fair Scheduler) 周期
--cpu-quota限制 CPU CFS (Completely Fair Scheduler) 配额
--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允许在其中执行的 MEM (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,请首先确定容器 name 或 ID。您可以使用docker ps以查找这些值。您还可以 使用从docker run命令。然后,执行以下作:

$ 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 的内核版本上,可以在 Running container (如果容器是使用--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设置。下次您 启动它,容器将使用新值。

高于 (include) 4.6 的内核版本没有此限制,您 可以使用--kernel-memory与其他选项相同。

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

您可以在正在运行的容器上更改容器的重启策略。新的 重新启动策略在您运行docker update在 容器。

要更新一个或多个容器的重启策略,请执行以下作:

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

请注意,如果容器以--rm标志,则无法更新重新启动 政策。这AutoRemoveRestartPolicy对于 容器。