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-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是互斥的。