Podman更新容器启动参数 实现容器永不停止
为什么我无法使用podman update container_id --restart=always ?
我猜你在阅读本文之前已经尝试过docker(podman) update了,但是很遗憾Podman update命令主要用于配置容器可用资源和,比如限制容器使用的内存数量。
以下为podman update的可用子命令: 随着podman更新,他们可能会被更改,请参考官方文档podman-update - Update the configuration of a given container
选项 | 描述 |
---|---|
--blkio-weight | 设置块设备 I/O 的权重。权重决定了在多个容器之间进行块 I/O 带宽分配时的优先级。 |
--blkio-weight-device | 为特定的块设备设置 I/O 权重。格式为“设备路径:权重”。 |
--cpu-period | 设置 CPU 周期的时间长度,单位为微秒。用于与 --cpu-quota 一起限制 CPU 的使用。 |
--cpu-quota | 设置 CPU 配额,即容器在一个 CPU 周期内可以使用的微秒数。 |
--cpu-rt-period | 设置实时 CPU 调度的周期长度,单位为微秒。用于限制实时任务的 CPU 使用时间。 |
--cpu-rt-runtime | 设置实时 CPU 调度的运行时间长度,单位为微秒。 |
--cpu-shares | 设置 CPU 权重,用于在多个容器之间分配 CPU 时间。 |
--cpus.container | 设置容器可以使用的 CPU 核心数。 |
--cpuset-cpus | 设置容器可以使用的 CPU 集合。 |
--cpuset-mems | 设置容器可以使用的内存节点集合。 |
--device-read-bps | 为特定的设备设置读取带宽限制,单位为字节/秒。格式为“设备路径:带宽”。 |
--device-read-iops | 为特定的设备设置读取 I/O 操作限制,单位为操作/秒。格式为“设备路径:I/O 操作数”。 |
--device-write-bps | 为特定的设备设置写入带宽限制,单位为字节/秒。格式为“设备路径:带宽”。 |
--device-write-iops | 为特定的设备设置写入 I/O 操作限制,单位为操作/秒。格式为“设备路径:I/O 操作数”。 |
--memory | 设置容器可以使用的内存大小。 |
--memory-reservation | 设置容器内存预留大小,确保容器启动时获得的最小内存量。 |
--memory-swap | 设置容器可以使用的总内存(包括内存和交换分区)大小。 |
--memory-swappiness | 设置容器的交换倾向性,取值范围为 0 到 100。较高的值意味着容器更倾向于使用交换分区。 |
--pids-limit | 设置容器可以创建的进程数限制。 |
使用Podman更新容器参数的正确做法
假设你不想删除并在重新创建该容器时丢失之前使用的参数
以正在运行的容器natfrp-service为例:
查看容器启动参数
(我使用SakuraFrp官方的脚本部署,但是我现在需要更改--restart=on-failure:5 为:--restart=always 并且我不想重新修改一些其他固定好的参数)
podman inspect natfrp-service | grep -A 15 "CreateCommand"
这里的15取决于你的容器启动参数有多少项,一般来说一项为一行,15即获取字符串“CreateCommand”后的15行。如果你发现过多导致没有完全输出,可以适当增加该值。
停止容器
sudo podman stop natfrp-service
删除容器
sudo podman rm natfrp-service
重新运行容器并添加参数
podman run --name=natfrp-service --restart=always other... natfrp.com/launcher:latest