NAME

podman-update -更新给定容器的配置

SYNOPSIS

podman update [options] container

podman container update [options] container

DESCRIPTION

更新现有容器的配置,允许更改资源限制和运行状况检查。

OPTIONS

--blkio-weight = 重量

数据块IO相对权重。这个 weight 是介于 101000

Cgroup V1无根系统不支持此选项。

--blkio-weight-device = device:weight

数据块IO相对设备权重。

--cpu-period = 限制

设置完全公平调度程序(CFS)的CPU周期,它是以微秒为单位的持续时间。一旦容器的CPU配额用完,它将不会被调度运行,直到当前周期结束。默认为100000微秒。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--cpu-quota = 限制

限制CPU完全公平调度器(CFS)配额。

限制容器的CPU使用量。默认情况下,容器使用全部CPU资源运行。该限制是一个以微秒为单位的数字。如果提供了一个数字,则允许容器使用该数量的CPU时间,直到CPU周期结束(可通过 --cpu-period )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--cpu-rt-period = 微秒级

以微秒为单位限制CPU实时周期。

限制容器的实时CPU使用率。该选项告诉内核将容器的实时CPU使用率限制在指定的时间段内。

此选项仅在cgroup V1 Rootful系统上受支持。

--cpu-rt-runtime = 微秒级

以微秒为单位限制CPU实时运行时间。

限制容器的实时CPU使用率。该选项告诉内核限制给定的CPU周期内实时任务可能消耗的时间量。例如:周期为1,000,000 us,运行时间为95,000 us意味着该容器可以消耗95%的可用CPU,并将剩余的5%留给正常的优先级任务。

容器中所有运行时间的总和不能超过分配给父cgroup的数量。

此选项仅在cgroup V1 Rootful系统上受支持。

--cpu-shares-c = 股票

CPU占有率(相对权重)。

默认情况下,所有容器获得相同比例的CPU周期。可以通过相对于所有运行的容器的组合权重更改容器的CPU份额权重来修改此比例。默认权重为 1024

这一比例仅适用于CPU密集型进程正在运行时。当一个容器中的任务空闲时,其他容器可以使用剩余的CPU时间。根据系统上运行的容器数量,实际的CPU时间会有所不同。

例如,假设有三个容器,其中一个的CPU份额为1024,另外两个的CPU份额设置为512。当所有三个容器中的进程尝试使用100%的CPU时,第一个容器获得总CPU时间的50%。如果添加的第四个容器的CPU份额为1024,则第一个容器仅获得33%的CPU。其余容器分别获得16.5%、16.5%和33%的CPU。

在多核系统上,CPU时间的份额分布在所有CPU核上。即使容器的CPU时间被限制在100%以下,它也可以100%地使用每个单独的CPU核心。

例如,假设一个系统有三个以上的核心。如果容器 C0 开头是 --cpu-shares=512 运行一个进程和另一个容器 C1 使用 --cpu-shares=1024 运行两个进程时,这可能会导致以下CPU份额划分:

PID

容器

CPU

CPU占有率

100

C0

0

100%CPU0

101

C1

1

CPU1的100%

102

C1

2

CPU2的100%

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--cpus =

CPU数量。缺省值为 0.0 这意味着没有限制。这是以下的速记 --cpu-period--cpu-quota ,因此不能使用指定该选项 --cpu-period--cpu-quota

在某些系统上,可能不允许非超级用户更改CPU限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--cpuset-cpus =

允许执行的CPU。可以指定为逗号分隔的列表(例如 0,1 ),作为一个范围(例如 0-3 ),或其任意组合(例如 0-3,7,11-15 )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--cpuset-mems = 节点

允许执行的内存节点(MEM)(0-3,0,1)。仅在NUMA系统上有效。

如果系统上有四个内存节点(0-3),请使用 --cpuset-mems=0,1 则容器中的进程仅使用来自前两个内存节点的内存。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--device-read-bps = path:rate

限制设备的读取速率(以字节/秒为单位)(例如 --device-read-bps=/dev/sda:1mb )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--device-read-iops = path:rate

限制设备的读取速率(以每秒IO操作数为单位)(例如 --device-read-iops=/dev/sda:1000 )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--device-write-bps = path:rate

限制设备的写入速率(以字节/秒为单位)(例如 --device-write-bps=/dev/sda:1mb )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--device-write-iops = path:rate

限制设备的写入速率(以每秒IO操作数为单位)(例如 --device-write-iops=/dev/sda:1000 )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--env-e = env

添加一个值(例如dev = value )到容器。可以多次使用。如果该值已存在于容器中,则会重写它。要从容器中删除环境变量,请使用 --unsetenv 选项.

请注意,dev更新仅会影响下次启动后的主容器进程。

--health-cmd = “命令” | [‘[“命令”,“arg1”,...]’]

设置或更改容器的运行状况检查命令。该命令是在容器内执行的确定容器健康的命令。要应用其他运行状况检查选项,该命令是必需的。价值为 none 禁用现有运行状况检查。

可以以JSON数组的形式传递多个选项;否则,该命令将被解释为 /bin/sh -c

注意:即使在图像中配置了健康检查,也会使用默认值。

--health-interval = 间隔

设置运行状况检查的间隔。一个 interval禁用 导致不会自动设置计时器。默认为 30s

注意:此参数将覆盖图像中的相关健康检查配置。

更改此设置会重置计时器。

--health-log-destination = directory_path

设置运行状况检查日志的目标。目录路径,local或events_logger(本地使用容器状态文件)(默认值:local)

  • local :(默认)HealthCheck日志存储在覆盖容器中。(For例如: $runroot/healthcheck.log )

  • directory :创建一个名为 <container-ID>-healthcheck.log HealthCheck日志位于指定目录中。

  • events_logger :日志将使用events_logger设置的日志机制来编写。它还将日志保存到默认目录,以提高具有大量日志的系统上的性能。

警告:更改此设置可能会导致以前的日志丢失。

--health-max-log-count = number of stored logs

在HealthCheck日志文件中设置最大尝试次数。(“0”值意味着日志文件中的尝试次数无限)(默认:5次尝试)

--health-max-log-size = size of stored logs

设置存储的HealthCheck日志的最大字符长度。(“0”值意味着日志长度无限)(默认:500个字符)

--health-on-failure = action

容器转换到不正常状态后要执行的操作。缺省值为 none

  • none :不采取行动。

  • kill :杀死集装箱。

  • restart :重启容器。请不要将 restart 使用 --restart 旗帜。当在system d单元内运行时,请考虑使用 killstop 操作,以利用systemd的重启策略。

  • stop :停止集装箱。

--health-retries = 重试

在运行状况检查被视为不健康之前允许的重试次数。默认值为 3

注意:此参数可以覆盖图像中的健康检查配置。

--health-start-period = 期间

容器引导所需的初始化时间。该值可以用如下所示的时间格式表示 2m3s 。默认值为 0s

注意:只要启动容器,就会执行健康检查命令,如果健康检查成功,容器的健康状态将更新为 healthy 。但是,如果运行状况检查失败,则运行状况状态将保持为 starting 直到运行状况检查成功或直到 --health-start-period 时间到了。如果运行状况检查命令在 --health-start-period 时间已过,健康状态将更新为 unhealthy 。运行状况检查命令根据的值定期执行 --health-interval

注意:此参数将覆盖图像中的相关健康检查配置。

--health-startup-cmd = "command" | '["command", "arg1", ...]'

为容器设置启动运行状况检查命令。该命令在容器内执行,用于控制常规的运行状况检查。启动命令成功后,将开始定期运行状况检查,并停止启动运行状况检查。或者,如果命令在设定的尝试次数后失败,容器将重新启动。启动健康检查可用于确保启动期延长的容器在完全启动之前不会被标记为不健康。启动运行状况检查只能在常规运行状况检查(从容器的映像或 --health-cmd 选项)也被设置。

--health-startup-interval = interval

设置启动运行状况检查的间隔。一个 intervaldisable 导致不会自动设置计时器。缺省值为 30s

更改此设置会根据容器的状态重置计时器。

--health-startup-retries = retries

在启动运行状况检查重新启动容器之前允许的尝试次数。如果设置为 0 ,容器永远不会重新启动。缺省值为 0

--health-startup-success = retries

启动运行状况检查成功并开始常规运行状况检查之前所需的成功运行次数。价值为 0 意味着任何成功都是定期健康检查的开始。缺省值为 0

--health-startup-timeout = timeout

启动运行状况检查命令在标记为失败之前必须完成的最长时间。该值可以用如下所示的时间格式表示 2m3s 。缺省值为 30s

--health-timeout = 超时

在间隔被视为失败之前允许完成运行状况检查的最长时间。与Start-Period类似,该值可以用如下所示的时间格式表示 1m22s 。默认值为 30s

注意:超时将健康检查标记为失败。如果healthcheck命令本身运行的时间超过指定的 timeout ,将发送一个 SIGKILL 信号了

注意:此参数将覆盖图像中的相关健康检查配置。

--memory-m = number[unit]

内存限制。一个 unitb (字节), k (千比字节), m (兆字节),或 g (千兆字节)。

允许限制容器可用的内存。如果主机支持交换内存,则 -m 内存设置可以大于物理RAM。如果指定限制为0(不使用 -m ),容器的内存不受限制。实际限制可能四舍五入为操作系统页面大小的倍数(该值非常大,即数百万万亿)。

Cgroup V1无根系统不支持此选项。

--memory-reservation = number[unit]

内存软限制。一个 unitb (字节), k (千比字节), m (兆字节),或 g (千兆字节)。

设置内存预留后,当系统检测到内存争用或内存不足时,会强制容器将其消耗限制为其预留。因此,请始终将该值设置为 --memory ,否则以硬限制为准。默认情况下,内存预留与内存限制相同。

Cgroup V1无根系统不支持此选项。

--memory-swap = number[unit]

一个等于内存加交换空间的限制值。一个 unitb (字节), k (千比字节), m (兆字节),或 g (千兆字节)。

必须与 -m ( --memory )旗帜。参数值必须大于 -m ( --memory )默认情况下,它被设置为值的两倍 --memory

设置 number-1 以启用无限制交换。

Cgroup V1无根系统不支持此选项。

--memory-swappiness =

调整容器的内存交换行为。接受介于以下范围的整数 0100

此标志仅在cgroup V1 Rootful系统上受支持。

--no-healthcheck

禁用任何已定义的容器运行状况检查。

--pids-limit = 限制

调整容器的PID限制。设置为 -1 为集装箱提供无限的PID。缺省值为 2048 在支持“PIDS”cgroup控制器的系统上。

--restart = 政策

重新启动策略以在容器退出时遵循。重新启动策略不会生效,如果通过 podman killpodman stop 命令。

有效 policy 值包括:

  • no :退出时不重新启动容器

  • never :同义词 no ;退出时不重新启动容器

  • on-failure[:max_retries] :当容器以非零退出代码退出时重新启动容器,无限期重试或直到可选的 max_retries 命中计数

  • always :容器退出时重新启动,无论状态如何,无限期重试

  • unless-stopped :等同于 始终

Podman提供了一个系统单元文件podman-restart.service,它在系统重新启动后重新启动Containers。

在系统d服务中运行容器时,请使用系统d提供的重启功能。换句话说,不要在容器单位中使用此选项,而是将 Restart= 中的系统ID指令 [Service] 一节。看见 podman-systemd.unit (5)及 systemd.service (5)。

--unsetenv = env

从容器中取消设置环境变量。

请注意,dev更新仅会影响下次启动后的主容器进程。

EXAMPLEs

使用新的CPU配额和周期更新容器。

podman update --cpus=5 myCtr

使用croups v2的所有可用选项更新容器。

podman update --cpus 5 --cpuset-cpus 0 --cpu-shares 123 --cpuset-mems 0 --memory 1G --memory-swap 2G --memory-reservation 2G --blkio-weight-device /dev/zero:123 --blkio-weight 123 --device-read-bps /dev/zero:10mb --device-write-bps /dev/zero:10mb --device-read-iops /dev/zero:1000 --device-write-iops /dev/zero:1000 --pids-limit 123 ctrID

使用croups v1的所有可用选项更新容器。

podman update --cpus 5 --cpuset-cpus 0 --cpu-shares 123 --cpuset-mems 0 --memory 1G --memory-swap 2G --memory-reservation 2G --memory-swappiness 50 --pids-limit 123 ctrID

另请参阅

podman(1)podman-create(1)podman-run(1)

HISTORY

2022年8月,最初由Charlie Doerncdoern@redhat.com撰写