码头工人更新

描述

更新一个或多个容器的配置

用法

$ docker update [OPTIONS] CONTAINER [CONTAINER...]

扩展说明

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-period API 1.25+
将CPU实时时间限制为微秒
--cpu-rt-runtime API 1.25+
限制CPU实时运行时间(以微秒为单位)
--cpu-shares-c CPU份额(相对重量)
--cpus API 1.29+
CPU数量
--cpuset-cpus 允许执行的CPU(0-3,0,1)
--cpuset-mems 允许执行的MEM(0-3,0,1)
--kernel-memory 内核内存限制
--memory-m 内存限制
--memory-reservation 内存软限制
--memory-swap 交换限制等于内存加交换:“-1”以启用无限交换
--pids-limit API 1.40+
Tune容器pids限制(设置-1表示无限制)
--restart 容器退出时重新启动策略以应用

例子

以下各节说明了使用此命令的方法。

更新容器的cpu份额

要将容器的cpu份额限制为512,请首先标识容器名称或ID。您可以docker ps用来查找这些值。您也可以使用从docker run命令返回的ID 。然后,执行以下操作:

$ docker update --cpu-shares 512 abebf7571666

使用cpu共享和内存更新容器

要为多个容器更新多个资源配置:

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

更新容器的内核内存约束

您可以使用该--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与其他选项相同的方式。

更新容器的重启策略

您可以在运行中的容器上更改容器的重新启动策略。docker update在容器上运行后,新的重新启动策略立即生效。

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

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

请注意,如果容器以“ --rm”标志启动,则无法为其更新更新策略。该AutoRemoveRestartPolicy是容器相互排斥。

上级命令

命令 描述
码头工人 Docker CLI的基本命令。