docker container update
描述 | 更新一个或多个容器的配置 |
---|---|
用法 | docker container update [OPTIONS] CONTAINER [CONTAINER...] |
别名 | docker update |
描述
docker update
命令动态更新容器配置。您可以使用此命令防止容器消耗其 Docker 主机过多的资源。只需一个命令,您可以对单个容器或多个容器设置限制。要指定多个容器,请提供以空格分隔的容器名称或 ID 列表。
除 --kernel-memory
选项外,您可以在运行中或已停止的容器上指定这些选项。在内核版本低于 4.6 的情况下,您只能在已停止的容器或已初始化内核内存的运行中容器上更新 --kernel-memory
。
警告
Windows 容器不支持
docker update
和docker container update
命令。
选项
选项 | 默认值 | 描述 |
---|---|---|
--blkio-weight | 块 IO(相对权重),介于 10 到 1000 之间,或设置为 0 以禁用(默认值 0) | |
--cpu-period | 限制 CPU CFS(完全公平调度器)周期 | |
--cpu-quota | 限制 CPU CFS(完全公平调度器)配额 | |
--cpu-rt-period | API 1.25+ 限制 CPU 实时周期(微秒) | |
--cpu-rt-runtime | API 1.25+ 限制 CPU 实时运行时长(微秒) | |
-c, --cpu-shares | CPU 份额(相对权重) | |
--cpus | API 1.29+ CPU 数量 | |
--cpuset-cpus | 允许执行的 CPU (0-3, 0,1) | |
--cpuset-mems | 允许执行的内存节点 (0-3, 0,1) | |
-m, --memory | 内存限制 | |
--memory-reservation | 内存软限制 | |
--memory-swap | 等于内存加交换空间的交换空间限制:-1 表示启用无限交换空间 | |
--pids-limit | API 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
标志启动的,则不能为其更新重启策略。AutoRemove
和 RestartPolicy
对于容器是互斥的。