NAME¶
Podman-system.单位-使用Podman Quadlet的系统单位
SYNOPSIS¶
name .容器, name .音量, name .网络, name .kube name .图像, name .pod
Podman Rootful单元搜索路径¶
根用户的Quadlet文件可以放在以下两个目录中:
/ETC/CONTAINS/SYSTEM/
/usr/Share/Containers/SYSTEM/
Podman无根单元搜索路径¶
非超级用户的Quadlet文件可以放在以下目录中
$XDG_CONFIG_HOME/CONTAINS/SYSTEM D/或~/.CONFIG/CONTAINS/SYSTEM D/
/ETC/CONTAINS/SYSTEM/USERS/$(UID)
/ETC/CONTAINS/SYSTEM/USERS/
使用符号链接¶
Quadlet支持使用符号链接作为搜索路径的基础。不支持搜索路径下的符号链接。
DESCRIPTION¶
Podman支持通过使用 [systemd generator] (https://www.freedesktop.org/software/systemd/man/systemd.generator.html).这些文件在引导过程中读取(以及何时读取 systemctl daemon-reload
正在运行),并生成相应的常规系统服务单元文件。同时支持系统和用户SYSTEM D单元。支持标准系统单元文件中的所有选项和表格。例如,在 [Service] 表和 [Install] 表直接传递给system d,并由其处理。有关更多信息,请参见系统.单元(5)手册页。
Podman生成器读取上面的搜索路径并读取扩展名为 .container
.volume
, .network
, .pod
和 .kube
,并为每个文件生成一个名称类似的 .service
文件。请注意,现有供应商服务(即 /usr/
如果它们具有相同的名称,则会被替换。生成的单元文件可以用来启动和管理 systemctl
就像任何其他的系统服务一样。 systemctl {--user} list-unit-files
列出系统上的现有设备文件。
Podman文件使用与相同的格式 [regular systemd unit files] (https://www.freedesktop.org/software/systemd/man/systemd.syntax.html).每种文件类型都有一个定制部分(例如, [Container]
),所有其他部分都原封不动地传递,允许使用任何正常的系统配置选项,如依赖项或cgroup限制。
源文件还支持在相同的 [way systemd does] (https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html).对于给定源文件(例如 foo.container
),对应的 .d
目录(在本例中 foo.container.d
)将被扫描以查找具有 .conf
按字母顺序合并到基本文件中的扩展名。这些插件文件的格式与基本文件相同。这对于更改或添加机组的配置设置非常有用,而不必修改机组文件。
对于无根容器,当管理员将Quadlet文件放在/etc/tainers/systemd/USERS目录中时,所有用户的会话都会在登录会话开始时执行该Quadlet。如果管理员将一个Quadlet文件放在/etc/tainers/systemd/user/${uid}/目录中,则在启动登录会话时,只有具有匹配UID的用户才会执行该Quadlet。对于放置在/etc/tainers/systemd/user/${uid}/内的子目录中的设备文件以及其他用户设备搜索路径,Quadlet将递归地搜索并运行这些子目录中的设备文件。
注意:当Quadlet启动时,Podman通常会多拉一个容器图像,这可能需要相当长的时间。系统默认服务启动时间为90秒,否则服务将失败。预拉取映像或延长服务的system d超时时间 TimeoutStartSec 服务选项可以解决问题。
将以下代码片段添加到一个Quadlet文件中会将系统超时时间延长到15分钟。
[Service]
TimeoutStartSec=900
Quadlet需要使用cgroup v2,使用 podman info --format {{.Host.CgroupsVersion}}
来检查系统。
服务类型¶
默认情况下, Type
中的字段 Service
不需要设置Quadlet文件的部分。Quadlet会将其设置为 notify
为 .container
和 .kube
文件, forking
为 .pod
文件,以及 oneshot
为 .volume
, .network
和 .image
档案。
然而, Type
可以显式设置为 oneshot
为 .container
和 .kube
在没有容器运行一次的情况下创建文件 podman
出口。
在设置时 Type=oneshot
,建议同时设置 RemainAfterExit=yes
以防止服务状态变为 inactive (dead)
这类情况的示例:
.container
file with an image that exits after their entrypoint has finished ``.kube
指向未定义任何容器的Kubernetes YAML文件的文件。例如,仅限PVC
启用单位文件¶
由Podman创建的服务被system d认为是暂时的,这意味着它们不具有与常规单元相同的持久性规则。特别是,不可能为了让它们在下一次引导时自动启用而“系统启用”它们。
为了补偿这一点,生成器手动应用 [Install]
部分的容器定义单元文件在生成期间,以相同的方式 systemctl enable
在以后运行时执行此操作。
例如,要在引导时启动容器,请将类似以下内容添加到文件:
[Install]
WantedBy=default.target
目前,只有 Alias
, WantedBy
和 RequiredBy
支持密钥。
安装节可以是主文件的一部分,也可以如上所述位于单独的插件文件中。后者允许您安装未启用的单元,然后通过安装插件来启用它。
NOTE: 要表示容器之间的依赖关系,请使用生成的服务名称。换句话说,就是 WantedBy=other.service
,不是 WantedBy=other.container
。对于其他类型的依赖关系也是如此,比如 After=other.service
。
模板文件¶
系统支持以下概念: [template files] (https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html#Service%20Templates).它们是运行时名称为“basename@instancename.service”形式的单元,但可以从单个“basename@.service”文件多次实例化。通过使用具有完整实例名称的插件文件,各个实例也可以不同。
Quadlet以两种方式支持这些功能。首先,一个带有模板表单的四元组单元将生成一个带有模板表单的系统服务,该模板系统服务可以作为常规模板使用。例如,“foo@.tainer”将生成“foo@.service”,然后您可以“systemctl start foo@bar.service”。
其次,如果您创建一个类似于“foo@instance.tainer”的符号链接,它将生成一个实例化的模板文件。在生成该文件时,Quadlet将从实例化目录(foo@instance.tainer.d)和模板目录(foo@.tainer.d)中读取插件文件。这允许对单个实例进行自定义。
实例化模板文件(如 foo@bar.container
)可以像非模板化的一样启用。但是,模板化的模板 (foo@.container
)是不同的,因为它们需要实例化。如果 [Install]
节包含一个 DefaultInstance=
键,则该实例将被启用,但如果不启用,则不会发生任何事情,并且这些选项将仅用作使用符号链接实例化的单元的默认选项。
一个模板文件示例 sleep@.container
可能如下所示:
[Unit]
Description=A templated sleepy container
[Container]
Image=quay.io/fedora/fedora
Exec=sleep %i
[Service]
# Restart service when sleep finishes
Restart=always
[Install]
WantedBy=multi-user.target
DefaultInstance=100
如果安装了此程序,则在引导时将有一个 sleep@100.service
跑步时休眠100秒。然后,您可以执行如下操作 systemctl start sleep@50.service
启动另一个休眠50秒的实例,或者另一个服务可以通过如下依赖项启动它 Wants=sleep@50.service
。
另外,如果你这样做了 ln -s sleep@.container sleep@10.container
您还将在启动时运行10秒的睡眠。而且,如果您希望该特定实例与另一个映像一起运行,您可以创建一个插件文件,如下所示 sleep@10.container.d/10-image.conf
:
[Container]
Image=quay.io/centos/centos
调试单元文件¶
将单元文件放入其中一个单元搜索路径(如上所述)后,您可以从 systemctl start {--user}
。如果失败,并显示“Failure to Start Example.service:Unit Example.service Not Found.”,则可能是您使用了不正确的语法,或者您使用了较新版本的Podman Quadlet中的选项,生成器无法创建服务文件。
使用以下命令查看生成的文件和/或错误消息:
/usr/lib/systemd/system-generators/podman-system-generator {--user} --dryrun
调试有限的单元文件集¶
如果要调试一组有限的单元文件,可以将它们复制到单独的目录中,并将 QUADLET_UNIT_DIRS
运行以下命令时,将环境变量添加到此目录:
QUADLET_UNIT_DIRS=<Directory> /usr/lib/systemd/system-generators/podman-system-generator {--user} --dryrun
这将指示Quadlet在该目录中查找单元,而不是普通单元,并将输出限制为您正在调试的单元。
集装箱单位 [Container]¶
容器单元的名称为 .container
扩展名并包含一个 [Container]
描述作为服务运行的容器的部分。生成的服务文件包含一行,如下所示 ExecStart=podman run … image-name
,并且本节中的大多数键控制传递给Podman的命令行选项。但是,一些选项也会影响如何设置system d以运行和与容器交互的细节。
默认情况下,Podman容器与单元具有相同的名称,但带有 systemd-
前缀,即 $name.container
文件创建一个 $name.service
单元和一个 systemd-$name
波德曼集装箱。这个 ContainerName
选项允许用用户提供的名称覆盖此默认名称。
只有一个必需的密钥, Image
,它定义服务运行的容器镜像。
的有效选项 [Container]
如下所示:
[Container] options |
podman run equivalent |
---|---|
添加能力=CAP |
--CAP-ADD CAP |
AddDevice=/dev/foo |
--设备/开发/信息 |
Annotation=“XYZ” |
--注解“XYZ” |
自动更新=注册表 |
--Label“io.tainers.auuppdate=注册表” |
容器名称=名称 |
--名称名称 |
ContainersConfModule=/etc/nvd.conf |
--MODULE=/ETC/NVD.conf |
DNS=192.168.55.1 |
--dns=192.168.55.1 |
DNSOption=NDOTS:1 |
--dns-选项=ndots:1 |
DNSSearch=foo.com |
--dns-search=foo.com |
丢弃能力=CAP |
--CAP-DROP=CAP |
Entrypoint=/foo.sh |
--Entry Point=/foo.sh |
环境=foo=bar |
--env foo=bar |
环境文件=/tmp/env |
--env-file/tmp/env |
Environment主机=True |
--环境主机 |
Exec=/usr/bin/命令 |
镜像规范后的命令-/usr/bin/命令 |
ExposeHostPort=50-59 |
--曝光50-59 |
GIDMap=0:10000:10 |
--gidmap=0:10000:10 |
GlobalArgs=--日志级别=调试 |
--日志级别=调试 |
组=1234 |
--用户UID:1234 |
HealthCmd=/usr/bin/命令 |
--Health-cmd=/usr/bin/命令 |
健康间隔=2M |
--Health-Interval=2M |
HealthOnFailure=终止 |
--故障时的健康=杀死 |
HealthRetries=5 |
--运行状况-重试次数=5 |
HealthStartPeriod=1M |
--健康-开始-周期=周期=1M |
HealthStartupCmd=命令 |
--Health-Startup-cmd=命令 |
HealthStartupInterval=1M |
--Health-Starting-Interval=1M |
HealthStartupRetries=8 |
--运行状况-启动-重试=8 |
HealthStartupSuccess=2 |
--健康-创业-成功=2 |
HealthStartupTimeout=1m33s |
--运行状况-启动-超时=1m33s |
健康超时=20秒 |
--运行状况超时=20秒 |
主机名=新主机名 |
--HOSTNAME=“新主机名” |
图像=ubi8 |
图像规格-ubi8 |
IP=192.5.0.1 |
--IP 192.5.0.1 |
IP6=2001:DB8::1 |
--ip6 2001:DB8::1 |
LABEL=“XYZ” |
--标签“XYZ” |
日志驱动程序=日志 |
--日志驱动程序日志 |
掩码=/proc/sys/foo\:/proc/sys/bar |
--安全选项掩码=/proc/sys/foo:/proc/sys/bar |
安装=类型=... |
--装载类型=... |
网络=主机 |
--网络主机 |
NoNewPrivileges=True |
--安全选项无新权限 |
NOTIFY=真 |
--SDNOTIFY容器 |
PidsLimit=10000 |
--PIDs--限制10000 |
Pod=Pod-Name |
--pod=pod-name |
PodmanArgs=--添加主机页签 |
--添加主机页签 |
发布端口=50-59 |
--出版50-59期 |
拉动=从不 |
--Pull=从不 |
只读=TRUE |
--只读 |
ReadOnlyTmpfs=TRUE |
--只读-tmpfs |
Rootfs=/var/lib/rootfs |
--rootfs/var/lib/rootfs |
RunInit=True |
--初始化 |
SeccompProfile=/tmp/s.json |
--Security-opt seccomp=/tMP/s.json |
机密=机密 |
--机密=机密 [,opt=opt ...] |
SecurityLabelDisable=True |
--安全选项标签=禁用 |
SecurityLabelFileType=usr_t |
--SECURITY-OPT标签=文件类型:usr_t |
安全标签级别=s0:c1、c2 |
--安全选项标签=级别:s0:c1、c2 |
SecurityLabelNest=True |
--安全选项标签=嵌套 |
SecurityLabelType=spc_t |
--SECURITY-OPT标签=类型:spc_t |
ShmSize=100M |
--SHM-大小=100米 |
停止超时=20 |
--停止超时=20 |
SubGIDMap=gtest |
--subgidname=gtest |
SubUIDMap=uTest |
--subuidname=uTest |
系统=名称=值 |
--sysctl=名称=值 |
时区=本地 |
--TZ本地 |
Tmpfs=/Work |
--tmpf/work |
Uidmap=0:10000:10 |
--uidmap=0:10000:10 |
U限制=无文件=1,000:10000 |
--ulimit nofile=1000:10000 |
取消掩码=全部 |
--安全选项取消掩码=全部 |
用户=bin |
--用户绑定 |
UserNS=Keep-id:Uid=200,GID=210 |
--用户Keep-id:uid=200,gid=210 |
卷=/源:/目标 |
--卷/源:/目标 |
工作目录=$HOME |
--工作目录$HOME |
描述: [Container]
部分包括:
AddCapability=
¶
除了默认的Podman功能集之外,还可以将这些功能添加到容器中。
这是一个空格分隔的功能列表。此密钥可以多次列出。
例如:
AddCapability=CAP_DAC_OVERRIDE CAP_IPC_OWNER
AddDevice=
¶
将设备节点从主机添加到容器中。其格式为 HOST-DEVICE[:CONTAINER-DEVICE][:PERMISSIONS]
,在哪里 HOST-DEVICE
是主机上设备节点的路径, CONTAINER-DEVICE
是容器中设备节点的路径,并且 PERMISSIONS
是一个权限列表,其中‘r’代表读,‘w’代表写,‘m’代表mKNOD(2)。这个 -
Prefix告诉Quadlet仅当主机上存在该设备时才添加该设备。
此密钥可以多次列出。
Annotation=
¶
在容器上设置一个或多个OCI注释。该格式是一个列表 key=value
项,类似于 Environment
。
此密钥可以多次列出。
AutoUpdate=
¶
指示容器是否将自动更新( [podman-auto-update(1)] (podman-Auto-upate.1.md))。支持下列值:
registry
:需要使用完全限定的镜像引用(例如,quay.io/podman/稳定:最新)来创建容器。这种强制执行对于知道要实际检查和拉入哪个图像是必要的。如果使用了图像ID,Podman将不再知道要检查/提取哪个图像。local
:告诉Podman将容器正在使用的图像与其在本地存储中的原始名称进行比较。如果映像在本地更新,Podman只需重新启动执行容器的系统单元。
ContainerName=
¶
Podman容器的(可选)名称。如果未指定此项,则默认为 systemd-%N
与服务名称相同,但带有 systemd-
前缀,以避免与用户管理的容器冲突。
ContainersConfModule=
¶
加载指定的tainers.conf(5)模块。相当于波德曼 --module
选择。
此密钥可以多次列出。
DNS=
¶
为此网络中的容器设置网络作用域的DNS解析器/名称服务器。
此密钥可以多次列出。
DNSOption=
¶
设置自定义的DNS选项。
此密钥可以多次列出。
DNSSearch=
¶
设置自定义DNS搜索域。使用 DNSSearch=. 要删除搜索域,请执行以下操作。
此密钥可以多次列出。
DropCapability=
¶
从默认的Podman功能集中删除这些功能,或者 all
放弃所有能力。
这是一个空格分隔的功能列表。此密钥可以多次列出。
例如:
DropCapability=CAP_DAC_OVERRIDE CAP_IPC_OWNER
Entrypoint=
¶
覆盖图像中的默认入口点。相当于波德曼 --entrypoint
选择。以json字符串的形式指定多选项命令。
Environment=
¶
在容器中设置环境变量。它使用的格式与 [services in systemd] (https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Environment=),并可以多次上市。
EnvironmentFile=
¶
使用以行分隔的文件在容器中设置环境变量。该路径可以是绝对路径,也可以是单元文件位置的相对路径。此密钥可以多次使用,并且在传递给 podman run
。
EnvironmentHost=
¶
使用容器内部的主机环境。
Exec=
¶
如果设置了此项,则它将定义在容器中运行的命令行。如果未设置,则使用容器映像的默认入口点。格式与的格式相同 [systemd command lines] (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Command%20lines).
ExposeHostPort=
¶
公开一个端口或一系列端口(例如 50-59
),从宿主到容器。相当于波德曼 --expose
选择。
此密钥可以多次列出。
GIDMap=
¶
使用提供的GID映射在新的用户命名空间中运行容器。相当于波德曼 --gidmap
选择。
此密钥可以多次列出。
GlobalArgs=
¶
此键包含直接在 podman
和 run
在生成的文件中。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
Group=
¶
要作为容器内部运行的(数字)GID。这不需要与主机上的GID匹配,可以使用以下命令进行修改 UsersNS
,但如果未指定,则也会在主机上使用此GID。
HealthCmd=
¶
设置或更改容器的运行状况检查命令。值为None将禁用现有运行状况检查。相当于波德曼 --health-cmd
选择。
HealthInterval=
¶
设置运行状况检查的间隔。禁用间隔将不会自动设置计时器。相当于波德曼 --health-interval
选择。
HealthOnFailure=
¶
容器转换到不正常状态后要执行的操作。组合使用的“KILL”操作与SYSTEM D集成得最好。一旦容器变得不健康,它就会被终止,并且system d重新启动该服务。相当于波德曼 --health-on-failure
选择。
HealthRetries=
¶
在运行状况检查被视为不健康之前允许的重试次数。相当于波德曼 --health-retries
选择。
HealthStartPeriod=
¶
容器引导所需的初始化时间。相当于波德曼 --health-start-period
选择。
HealthStartupCmd=
¶
为容器设置启动运行状况检查命令。相当于波德曼 --health-startup-cmd
选择。
HealthStartupInterval=
¶
设置启动运行状况检查的间隔。禁用间隔将不会自动设置计时器。相当于波德曼 --health-startup-interval
选择。
HealthStartupRetries=
¶
在启动运行状况检查重新启动容器之前允许的尝试次数。相当于波德曼 --health-startup-retries
选择。
HealthStartupSuccess=
¶
启动运行状况检查成功并开始常规运行状况检查之前所需的成功运行次数。相当于波德曼 --health-startup-success
选择。
HealthStartupTimeout=
¶
启动运行状况检查命令在标记为失败之前必须完成的最长时间。相当于波德曼 --health-startup-timeout
选择。
HealthTimeout=
¶
在间隔被视为失败之前允许完成运行状况检查的最长时间。相当于波德曼 --health-timeout
选择。
HostName=
¶
设置容器内可用的主机名。相当于波德曼 --hostname
选择。
Image=
¶
要在容器中运行的映像。出于性能和健壮性的原因,建议使用完全限定的映像名称,而不是短名称。
名称的格式与传递给 podman pull
。因此,它支持使用 :tag
或摘要以保证特定的图像版本。
作为特例,如果 name
图像的末尾为 .image
,Quadlet将使用由相应的 .image
文件,并且生成的系统d服务包含对 $name-image.service
。注意,对应的 .image
文件必须存在。
IP=
¶
为容器指定静态IPv4地址,例如 10.88.64.128 。相当于波德曼 --ip
选择。
IP6=
¶
为容器指定静态IPv6地址,例如 fd46:db93:aa76:ac37::10 。相当于波德曼 --ip6
选择。
Label=
¶
在集装箱上设置一个或多个OCI标签。该格式是一个列表 key=value
项,类似于 Environment
。
此密钥可以多次列出。
LogDriver=
¶
设置Podman在运行容器时使用的日志驱动程序。相当于波德曼 --log-driver
选择。
Mask=
¶
指定要用冒号分隔的掩码路径。 Mask=/path/1:/path/2
。无法在容器内访问掩码路径。
Mount=
¶
将文件系统挂载附加到容器。这相当于波德曼 --mount
选项,通常具有以下形式 type=TYPE,TYPE-SPECIFIC-OPTION[,...]
。
作为特例,对于 type=volume
如果 source
结尾为 .volume
,一个叫VOLUME的波德曼叫 systemd-$name
被用作源,并且生成的system d服务包含对 $name-volume.service
。这样的卷可以使用 $name.volume
四元组文件。
此密钥可以多次列出。
Network=
¶
指定容器的自定义网络。它的格式与 --network
选项以 podman run
。例如,使用 host
使用容器中的主机网络,或者 none
不在容器中设置网络。
作为特例,如果 name
网络的结尾为 .network
,一个叫Podman的网络 systemd-$name
,并且生成的系统d服务包含对 $name-network.service
。这样的网络可以通过使用 $name.network
四元组文件。
此密钥可以多次列出。
NoNewPrivileges=
(默认为 no
)¶
如果启用,这将禁止容器进程通过setuid和文件功能等获得额外的权限。
Notify=
(默认为 no
)¶
默认情况下,Podman的运行方式是由容器运行时处理系统启动通知命令。换句话说,当容器运行时启动容器中的子级时,服务被视为已启动。但是,如果容器应用程序支持 [sd_notify] (https://www.freedesktop.org/software/systemd/man/sd_notify.html),然后设置 Notify
设置为True,则将通知详细信息传递给容器,允许容器自己通知启动。
此外,设置 Notify
至 healthy
将推迟启动通知,直到Podman Health Checks确定集装箱标记为健康。请注意,这需要设置容器运行状况检查,请参阅 HealthCmd
有关更多信息的选项。
PidsLimit=
¶
调整容器的PID限制。这相当于波德曼 --pids-limit
选择。
Pod=
¶
指定四元组 .pod
要将容器链接到的单元。该值必须采用以下形式 <name>.pod
以及 .pod
单位必须存在。
Quadlet将添加所有必要的参数来链接容器和Pod之间以及它们相应的服务之间。
PodmanArgs=
¶
此键包含直接传递到 podman run
命令在生成的文件中(就在命令行中的图像名称之前)。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
PublishPort=
¶
公开一个端口或一系列端口(例如 50-59
),从容器到宿主。相当于波德曼 --publish
选择。该格式类似于Podman选项,其形式为 ip:hostPort:containerPort
, ip::containerPort
, hostPort:containerPort
或 containerPort
,其中主机和集装箱端口的数量必须相同(在范围的情况下)。
如果IP设置为0.0.0.0或根本未设置,则该端口将绑定到主机上的所有IPv4地址上;使用 [::] 用于IPv6。
请注意,不列出主机端口意味着Podman会自动选择一个端口,并且每次调用服务时可能会有所不同。这使得这不是一个有用的选择。分配的端口可以通过 podman port
指挥部。
此密钥可以多次列出。
Pull=
¶
设置镜像拉取策略。这相当于波德曼 --pull
选择权
ReadOnly=
(默认为 no
)¶
如果启用,则使图像为只读。
ReadOnlyTmpfs=
(默认为 yes
)¶
如果ReadOnly设置为 yes
,在/dev、/dev/shm、/run、/tmp和/var/tmp上挂载读写tmpf。
Rootfs=
¶
要用于容器的rootf。RootFS指向系统上的一个目录,该目录包含要在容器中运行的内容。此选项与 Image
选择。
Rootfs的格式与传递给 podman run --rootfs
,因此它也支持覆盖挂载。
注意:在SELinux系统上,rootfs需要正确的标签,默认情况下为unconfined_u:Object_r:tainer_file_t:s0。
RunInit=
(默认为 no
)¶
如果启用,容器在容器内具有转发信号和获取进程的最小初始化进程。
SeccompProfile=
¶
设置要在容器中使用的seccomp配置文件。如果未设置,则使用默认的Podman配置文件。设置为json文件的路径名,或者 unconfined
禁用seccomp筛选器。
Secret=
¶
将容器中的Podman密码用作文件或环境变量。这相当于波德曼 --secret
选项,并且通常具有以下形式 secret[,opt=opt ...]
SecurityLabelDisable=
¶
关闭容器的标签分离。
SecurityLabelFileType=
¶
设置容器文件的标签文件类型。
SecurityLabelLevel=
¶
设置容器进程的标签进程级别。
SecurityLabelNested=
¶
允许SecurityLabels在容器内运行。这允许分离在容器内创建的容器。
SecurityLabelType=
¶
设置容器进程的标签进程类型。
ShmSize=
¶
/dev/shm的大小。
这相当于波德曼 --shm-size
选项,并且通常具有以下形式 number[unit]
StopTimeout=
¶
在强制停止容器之前等待的秒数。
请注意,该值应小于实际的系统d单元超时,以确保系统d不会终止podman rm命令。
这相当于波德曼 --stop-timeout
选择权
SubGIDMap=
¶
使用/etc/subgid文件中的名称映射在新的用户名称空间中运行容器。相当于波德曼 --subgidname
选择。
SubUIDMap=
¶
使用/etc/subuid文件中的名称映射在新的用户名称空间中运行容器。相当于波德曼 --subuidname
选择。
Sysctl=
¶
配置容器的命名空间内核参数。格式为 Sysctl=name=value
。
这是一个以空格分隔的内核参数列表。此密钥可以多次列出。
例如:
Sysctl=net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.all.use_tempaddr=1
Timezone=
(如果未设置,则使用系统配置的默认设置)¶
运行容器所在的时区。
Tmpfs=
¶
在容器中挂载一个tmpfs。这相当于波德曼 --tmpfs
选项,通常具有以下形式 CONTAINER-DIR[:OPTIONS]
。
此密钥可以多次列出。
UIDMap=
¶
使用提供的UID映射在新的用户名称空间中运行容器。相当于波德曼 --uidmap
选择。
此密钥可以多次列出。
Ulimit=
¶
ULimit选项。设置容器内部的ulimits值。
此密钥可以多次列出。
Unmask=
¶
指定要取消屏蔽的路径,以冒号分隔。UNMASK=ALL或/Path/1:/Path/2,或Shell展开路径(/proc/*):
如果设置为 ALL
,Podman将取消屏蔽默认情况下被屏蔽或设置为只读的所有路径。
默认掩码路径是/proc/acpi、/proc/kcore、/proc/key、/proc/等待时间统计信息、/proc/sched_debug、/proc/scsi、/proc/Timer_list、/proc/Timer_stats、/sys/Firmware和/sys/fs/selinux。
只读的默认路径为/proc/asound、/proc/bus、/proc/fs、/proc/irq、/proc/sys、/proc/SysRq-rigger、/sys/fs/cgroup。
User=
¶
要作为容器内部运行的(数字)UID。这不需要与主机上的UID匹配,可以使用以下命令进行修改 UserNS
,但如果未指定,则也会在主机上使用此UID。
UserNS=
¶
设置容器的用户命名空间模式。这相当于波德曼 --userns
选项,并且通常具有以下形式 MODE[:OPTIONS,...]
。
Volume=
¶
在容器中装入卷。这相当于波德曼 --volume
选项,通常具有以下形式 [[SOURCE-VOLUME|HOST-DIR:]CONTAINER-DIR[:OPTIONS]]
。
如果 SOURCE-VOLUME
开头为 .
,则Quadlet解析相对于单元文件位置的路径。
作为特例,如果 SOURCE-VOLUME
结尾为 .volume
,一个叫VOLUME的波德曼叫 systemd-$name
被用作源,并且生成的system d服务包含对 $name-volume.service
。这样的卷可以使用 $name.volume
四元组文件。
此密钥可以多次列出。
WorkingDir=
¶
容器内的工作目录。
在容器中运行二进制文件的默认工作目录是根目录(/)。图像开发人员可以使用WORKDIR指令设置不同的缺省值。此选项通过使用-w选项覆盖工作目录。
豆荚单位 [Pod]¶
Pod单元的名称为 .pod
扩展名并包含一个 [Pod]
描述作为服务创建和运行的Pod的部分。生成的服务文件包含一行,如下所示 ExecStartPre=podman pod create …
,并且本节中的大多数键控制传递给Podman的命令行选项。
默认情况下,Podman Pod与单元名称相同,但带有 systemd-
前缀,即 $name.pod
文件创建一个 $name-pod.service
单元和一个 systemd-$name
波德曼吊舱。这个 PodName
选项允许用用户提供的名称覆盖此默认名称。
的有效选项 [Pod]
如下所示:
[Pod] options |
podman container create equivalent |
---|---|
ContainersConfModule=/etc/nvd.conf |
--MODULE=/ETC/NVD.conf |
GlobalArgs=--日志级别=调试 |
--日志级别=调试 |
网络=主机 |
--网络主机 |
PodmanArgs=--CPU=2 |
--CPU=2 |
PodName=名称 |
--名称=名称 |
发布端口=50-59 |
--出版50-59期 |
卷=/源:/目标 |
--卷/源:/目标 |
中支持的密钥 [Pod]
部分包括:
ContainersConfModule=
¶
加载指定的tainers.conf(5)模块。相当于波德曼 --module
选择。
此密钥可以多次列出。
GlobalArgs=
¶
此键包含直接在 podman
和 pod
在生成的文件中。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
Network=
¶
指定Pod的自定义网络。它的格式与 --network
选项以 podman pod create
。例如,使用 host
使用Pod中的主机网络,或者 none
不在Pod中设置网络。
作为特例,如果 name
网络的结尾为 .network
,Quadlet将查找对应的 .network
四分体单元。如果找到,Quadlet将使用单元中网络集的名称,否则, systemd-$name
使用的是。生成的SYSTEM D服务包含对为此生成的服务单元的依赖 .network
单位,或打开 $name-network.service
如果 .network
找不到单位
此密钥可以多次列出。
PodmanArgs=
¶
此键包含直接传递到 podman pod create
命令在生成的文件中。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
PodName=
¶
Podman Pod的(可选)名称。如果未指定此项,则默认为 systemd-%N
与服务名称相同,但带有 systemd-
前缀,以避免与用户管理的容器冲突。
请注意,Pod和容器不能具有相同的名称。因此,如果设置了PodName,则它不能与任何容器冲突。
PublishPort=
¶
公开一个端口或一系列端口(例如 50-59
),从豆荚到寄主。相当于波德曼 --publish
选择。该格式类似于Podman选项,其形式为 ip:hostPort:containerPort
, ip::containerPort
, hostPort:containerPort
或 containerPort
,其中主机和集装箱端口的数量必须相同(在范围的情况下)。
如果IP设置为0.0.0.0或根本未设置,则该端口将绑定到主机上的所有IPv4地址上;使用 [::] 用于IPv6。
请注意,不列出主机端口意味着Podman会自动选择一个端口,并且每次调用服务时可能会有所不同。这使得这不是一个有用的选择。分配的端口可以通过 podman port
指挥部。
此密钥可以多次列出。
Volume=
¶
在Pod中装载卷。这相当于波德曼 --volume
选项,通常具有以下形式 [[SOURCE-VOLUME|HOST-DIR:]CONTAINER-DIR[:OPTIONS]]
。
如果 SOURCE-VOLUME
开头为 .
,则Quadlet解析相对于单元文件位置的路径。
作为特例,如果 SOURCE-VOLUME
结尾为 .volume
,Quadlet将查找对应的 .volume
四分体单元。如果找到,Quadlet将使用单元中的卷集的名称,否则, systemd-$name
使用的是。生成的SYSTEM D服务包含对为此生成的服务单元的依赖 .volume
单位,或打开 $name-volume.service
如果 .volume
找不到单位
此密钥可以多次列出。
库贝单位 [Kube]¶
Kube单位使用一个 .kube
扩展名并包含一个 [Kube]
一节介绍如何 podman kube play
作为服务运行。生成的服务文件包含一行,如下所示 ExecStart=podman kube play … file.yml
,并且本节中的大多数键控制传递给Podman的命令行选项。但是,一些选项也会影响如何设置system d以运行和与容器交互的细节。
只有一个必需的密钥, Yaml
,它定义了Kubernetes YAML文件的路径。
的有效选项 [Kube]
如下所示:
[Kube] options |
podman kube play equivalent |
---|---|
自动更新=注册表 |
--注解“io.tainers.auuppdate=注册表” |
ConfigMap=/tmp/config.map |
--CONFIG-MAP/tMP/config.map |
ContainersConfModule=/etc/nvd.conf |
--MODULE=/ETC/NVD.conf |
ExitCodePropagation=方式 |
如何传播容器错误状态 |
GlobalArgs=--日志级别=调试 |
--日志级别=调试 |
KubeDownForce=True |
--力(用于 |
日志驱动程序=日志 |
--日志驱动程序日志 |
网络=主机 |
--网络主机 |
PodmanArgs=--注解=键=值 |
--注解=键=值 |
发布端口=59-60 |
--发布=59-60 |
SetWorkingDirectory=YAML |
集 |
UserNS=Keep-id:Uid=200,GID=210 |
--用户Keep-id:uid=200,gid=210 |
Yaml=/tmp/kube.yaml |
Podman Kube play/tMP/kube.yaml |
中支持的密钥 [Kube]
部分包括:
AutoUpdate=
¶
指示容器是否将自动更新( [podman-auto-update(1)] (podman-Auto-upate.1.md))。可以多次指定AutoUppdate。支持下列值:
registry
:需要使用完全限定的镜像引用(例如,quay.io/podman/稳定:最新)来创建容器。这种强制执行对于知道要实际检查和提取哪些图像是必要的。如果使用了图像ID,Podman将不再知道要检查/提取哪个图像。local
:告诉Podman将容器正在使用的图像与其在本地存储中的原始名称进行比较。如果映像在本地更新,Podman只需重新启动执行Kubernetes Quadlet的SYSTEM D单元。name/(local|registry)
:告诉Podman执行local
或registry
指定容器名称的自动更新。
ConfigMap=
¶
将Kubernetes ConfigMap YAML路径传递给 podman kube play
通过 --configmap
争论。不像 configmap
参数,则该值只能包含一个路径,但它可以是绝对路径,也可以是单元文件位置的相对路径。
此密钥可能会多次使用
ContainersConfModule=
¶
加载指定的tainers.conf(5)模块。相当于波德曼 --module
选择。
此密钥可以多次列出。
ExitCodePropagation=
¶
控制SYSTEM D服务的主PID应该如何退出。支持下列值:
all
:如果所有容器都已失败,则退出非零(即,退出非零)any
:如果任何容器出现故障,则退出非零none
:退出零并忽略失败的容器
当前缺省值为 none
。
GlobalArgs=
¶
此键包含直接在 podman
和 kube
在生成的文件中。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
KubeDownForce=
¶
调用时删除所有资源,包括卷 podman kube down
。相当于波德曼 --force
选择。
LogDriver=
¶
设置Podman在运行容器时使用的日志驱动程序。相当于波德曼 --log-driver
选择。
Network=
¶
指定容器的自定义网络。它的格式与 --network
选项以 podman kube play
。例如,使用 host
使用容器中的主机网络,或者 none
不在容器中设置网络。
作为特例,如果 name
网络的结尾为 .network
,一个叫Podman的网络 systemd-$name
,并且生成的系统d服务包含对 $name-network.service
。这样的网络可以通过使用 $name.network
四元组文件。
此密钥可以多次列出。
PodmanArgs=
¶
此键包含直接传递到 podman kube play
命令在生成的文件中(就在命令行中YAML文件的路径之前)。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
PublishPort=
¶
公开一个端口或一系列端口(例如 50-59
),从容器到宿主。相当于 podman kube play
%s --publish
选择。该格式类似于Podman选项,其形式为 ip:hostPort:containerPort
, ip::containerPort
, hostPort:containerPort
或 containerPort
,其中主机和集装箱端口的数量必须相同(在范围的情况下)。
如果IP设置为0.0.0.0或根本未设置,则该端口将绑定到主机上的所有IPv4地址上;使用 [::] 用于IPv6。
单元文件中指定的已发布端口列表与Kubernetes YAML文件中指定的端口列表合并。如果在两者中指定了相同的容器端口和协议,则优先使用单元文件中的条目
此密钥可以多次列出。
SetWorkingDirectory=
¶
设置 WorkingDirectory
中的字段 Service
系统服务单元文件的组。用于允许 podman kube play
以正确解析相对路径。支持的值包括 yaml
和 unit
将工作目录分别设置为YAML或Quadlet单元文件的工作目录。
或者,用户可以显式设置 WorkingDirectory
中的字段 Service
组中的 .kube
文件。请注意,如果 WorkingDirectory
中的字段 Service
组已设置,Quadlet不会设置它,即使 SetWorkingDirectory
已设置
UserNS=
¶
设置容器的用户命名空间模式。这相当于波德曼 --userns
选项,并且通常具有以下形式 MODE[:OPTIONS,...]
。
Yaml=
¶
要使用的Kubernetes YAML文件的绝对或相对单元文件位置的路径。
网络单元 [Network]¶
网络文件使用 .network
扩展名并包含一个节 [Network]
描述命名Podman网络。生成的服务是一次性命令,可确保主机上存在网络,并在需要时创建网络。
默认情况下,Podman网络与设备同名,但带有 systemd-
前缀,即用于名为的网络文件 $NAME.network
,生成的Podman网络称为 systemd-$NAME
,生成的服务文件为 $NAME-network.service
。这个 NetworkName
选项允许用用户提供的名称覆盖此默认名称。
请注意,停止相应的服务不会删除Podman网络。此外,不支持更新现有网络。为了更新网络参数,您首先需要手动删除Podman网络,然后重新启动服务。
使用网络单元允许容器依赖于自动预先创建的网络。这在使用特殊选项控制网络创建时特别有趣,因为Podman会使用默认选项创建网络。
的有效选项 [Network]
如下所示:
[Network] options |
podman network create equivalent |
---|---|
ContainersConfModule=/etc/nvd.conf |
--MODULE=/ETC/NVD.conf |
DisableDNS=TRUE |
--禁用-dns |
DNS=192.168.55.1 |
--dns=192.168.55.1 |
驱动程序=桥梁 |
--驱动桥 |
Gateway=192.168.55.3 |
--网关192.168.55.3 |
GlobalArgs=--日志级别=调试 |
--日志级别=调试 |
内部=真 |
--内部 |
IPAMDriver=dhcp |
--IPAM-驱动程序dhcp |
IPRange=192.168.55.128/25 |
--IP范围192.168.55.128/25 |
IPv6=TRUE |
--IPv6 |
LABEL=“XYZ” |
--标签“XYZ” |
网络名称=foo |
PODMAN网络创建Foo |
选项=隔离=真 |
--opt隔离=TRUE |
PodmanArgs=--dns=192.168.55.1 |
--dns=192.168.55.1 |
Subnet=192.5.0.0/16 |
--子网192.5.0.0/16 |
中支持的密钥 [Network]
部分包括:
ContainersConfModule=
¶
加载指定的tainers.conf(5)模块。相当于波德曼 --module
选择。
此密钥可以多次列出。
DisableDNS=
(默认为 no
)¶
如果启用,则禁用此网络的DNS插件。
这相当于波德曼 --disable-dns
选择权
DNS=
¶
为此网络中的容器设置网络作用域的DNS解析器/名称服务器。
此密钥可以多次列出。
Driver=
(默认为 bridge
)¶
用于管理网络的驱动程序。目前 bridge
, macvlan
和 ipvlan
是受支持的。
这相当于波德曼 --driver
选择权
Gateway=
¶
定义该子网的网关。如果要提供网关地址,还必须提供子网选项。
这相当于波德曼 --gateway
选择权
此密钥可以多次列出。
GlobalArgs=
¶
此键包含直接在 podman
和 network
在生成的文件中。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
Internal=
(默认为 no
)¶
限制此网络的外部访问。
这相当于波德曼 --internal
选择权
IPAMDriver=
¶
设置网络的IPAM驱动程序(IP地址管理驱动程序)。目前 host-local
, dhcp
和 none
是受支持的。
这相当于波德曼 --ipam-driver
选择权
IPRange=
¶
分配一定范围内的容器IP。该范围必须是CIDR表示法中的完整子网或位于 <startIP>-<endIP>
与CIDR子网相比,允许更灵活的范围的语法。Ip-range选项必须与子网选项一起使用。
这相当于波德曼 --ip-range
选择权
此密钥可以多次列出。
IPv6=
¶
启用IPv6(双协议栈)网络。
这相当于波德曼 --ipv6
选择权
Label=
¶
在网络上设置一个或多个OCI标签。该格式是一个列表 key=value
项,类似于 Environment
。
此密钥可以多次列出。
NetworkName=
¶
Podman网络的(可选)名称。如果未指定此项,则默认为 systemd-%N
与设备名称相同,但带有 systemd-
前缀,以避免与用户管理的网络冲突。
Options=
¶
设置驱动程序特定选项。
这相当于波德曼 --opt
选择权
PodmanArgs=
¶
此键包含直接传递到 podman network create
命令在生成的文件中(就在命令行中的网络名称之前)。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
Subnet=
¶
CIDR表示法中的子网。
这相当于波德曼 --subnet
选择权
此密钥可以多次列出。
体积单位 [Volume]¶
卷文件使用 .volume
扩展名并包含一个节 [Volume]
描述命名的Podman卷。生成的服务是一次性命令,可确保该卷存在于主机上,并在需要时创建它。
默认情况下,Podman卷与设备具有相同的名称,但带有 systemd-
前缀,即用于名为的卷文件 $NAME.volume
,生成的Podman卷称为 systemd-$NAME
,生成的服务文件为 $NAME-volume.service
。这个 VolumeName
选项允许用用户提供的名称覆盖此默认名称。
使用卷单位允许容器依赖于自动预创建的卷。这在使用特殊选项控制卷创建时特别有趣,因为Podman会使用默认选项创建卷。
的有效选项 [Volume]
如下所示:
[Volume] options |
podman volume create equivalent |
---|---|
ContainersConfModule=/etc/nvd.conf |
--MODULE=/ETC/NVD.conf |
复制=真 |
--选项复制 |
设备=tmpf |
--opt设备=tmpf |
驱动程序=图像 |
--驱动程序=图像 |
GlobalArgs=--日志级别=调试 |
--日志级别=调试 |
组=192 |
--OPT组=192 |
图像=quay.io/centos/centos\:最新 |
--opt image=quay.io/centos/centos\:最新 |
LABEL=“foo=bar” |
--标签“foo=bar” |
选项=XYZ |
--选项XYZ |
PodmanArgs=--驱动程序=图像 |
--驱动程序=图像 |
类型=类型 |
设备的文件系统类型 |
用户=123 |
--opt uid=123 |
VolumeName=foo |
Podman卷创建Foo |
中支持的密钥 [Volume]
部分包括:
ContainersConfModule=
¶
加载指定的tainers.conf(5)模块。相当于波德曼 --module
选择。
此密钥可以多次列出。
Copy=
(默认为 yes
)¶
如果启用,则在第一次运行时会将位于卷装入点的映像内容复制到卷中。
Device=
¶
为卷装载的设备的路径。
Driver=
¶
指定卷驱动程序名称。当设置为时 image
vt.的. Image
还必须设置密钥。
这相当于波德曼 --driver
选择。
GlobalArgs=
¶
此键包含直接在 podman
和 volume
在生成的文件中。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
Group=
¶
用作卷的组的主机(数字)GID或组名
Image=
¶
指定卷所基于的图像 Driver
设置为 image
。出于性能和健壮性的原因,建议使用完全限定的映像名称,而不是短名称。
名称的格式与传递给 podman pull
。因此,它支持使用 :tag
或摘要以保证特定的图像版本。
作为特例,如果 name
图像的末尾为 .image
,Quadlet将使用由相应的 .image
文件,并且生成的系统d服务包含对 $name-image.service
。注意,对应的 .image
文件必须存在。
Label=
¶
在卷上设置一个或多个OCI标签。该格式是一个列表 key=value
项,类似于 Environment
。
此密钥可以多次列出。
Options=
¶
要用于文件系统的装载选项,如 mount(8) 命令 -o
选择。
PodmanArgs=
¶
此键包含直接传递到 podman volume create
命令在生成的文件中(就在命令行中卷的名称之前)。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
Type=
¶
的文件系统类型 Device
中使用的 mount(8) 命令 -t
选择。
User=
¶
用作卷所有者的主机(数字)UID或用户名
VolumeName=
¶
Podman卷的(可选)名称。如果未指定此项,则默认为 systemd-%N
与设备名称相同,但带有 systemd-
前缀,以避免与用户管理的卷冲突。
图像单位 [Image]¶
图像文件使用 .image
扩展名并包含一个节 [Image]
描述容器镜像拉取命令。生成的服务是一次性命令,可确保映像存在于主机上,并在需要时将其拉出。
使用图像单位允许容器和体积依赖于自动拉出的图像。当使用特殊选项控制图像拉取时,这一点尤其有趣。
的有效选项 [Image]
如下所示:
[Image] options |
podman image pull equivalent |
---|---|
所有标记=真 |
--所有标签 |
ARCH=AARCH64 |
--ARCH=aarch64 |
AuthFile=/etc/registry/auth.json |
--认证文件=/等/注册表/身份验证.json |
CertDir=/等等/注册表/证书 |
--cert-dir=/etc/Register/certs |
ContainersConfModule=/etc/nvd.conf |
--MODULE=/ETC/NVD.conf |
凭据=我的名字\:密码 |
--creds=myname\:密码 |
DecryptionKey=/etc/registry.key |
--DECRYPTION-KEY=/ETC/REGISTRY.Key |
GlobalArgs=--日志级别=调试 |
--日志级别=调试 |
图像=quay.io/centos/centos:最新 |
Podman镜像拉取quay.io/centos/centos\:最新 |
ImageTag=码头.io/centos/centos:最新 |
在解析时使用此名称 |
操作系统=Windows |
--os=Windows |
PodmanArgs=--os=Linux |
--os=Linux |
TLSVerify=False |
--TLS-Verify=FALSE |
变量=ARM/v7 |
--变量=ARM/v7 |
Arch=
¶
覆盖要拉取的映像的体系结构,默认为主机。
这相当于波德曼 --arch
选择。
AuthFile=
¶
身份验证文件的路径。
这相当于波德曼 --authfile
选择。
CertDir=
¶
在路径中使用证书( .crt, * .cert,.key)连接到注册表。
这相当于波德曼 --cert-dir
选择。
ContainersConfModule=
¶
加载指定的tainers.conf(5)模块。相当于波德曼 --module
选择。
此密钥可以多次列出。
Creds=
¶
这个 [username[:password]]
用于向注册表进行身份验证(如果需要)。
这相当于波德曼 --creds
选择。
DecryptionKey=
¶
这个 [key[:passphrase]]
用于图像解密。
这相当于波德曼 --decryption-key
选择。
GlobalArgs=
¶
此键包含直接在 podman
和 image
在生成的文件中。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
Image=
¶
要拉取的图像。出于性能和健壮性的原因,建议使用完全限定的映像名称,而不是短名称。
名称的格式与传递给 podman pull
。因此,它支持使用 :tag
或摘要以保证特定的图像版本。
ImageTag=
¶
被引用对象的实际FQIN Image
。仅当源是文件或目录存档时才有意义。
例如,将图像保存到 docker-archive
使用以下Podman命令:
podman image save --format docker-archive --output /tmp/archive-file.tar quay.io/podman/stable:latest
需要设置
Image=docker-archive:/tmp/archive-file.tar
ImageTag=quay.io/podman/stable:latest
OS=
¶
覆盖要拉取的映像的操作系统,默认为主机。
这相当于波德曼 --os
选择。
PodmanArgs=
¶
此键包含直接传递到 podman image pull
命令在生成的文件中(就在命令行中的图像名称之前)。它可用于访问Podman功能,否则生成器不支持该功能。由于生成器不知道这些参数可能导致哪些意外交互,因此不建议使用此选项。
它的格式是空格分隔的参数列表,可以选择单独转义这些参数,以允许包含空格和其他控制字符。
此密钥可以多次列出。
TLSVerify=
¶
在联系注册处时要求HTTPS和证书验证。
这相当于波德曼 --tls-verify
选择。
Variant=
¶
覆盖容器镜像的默认体系结构变量。
这相当于波德曼 --variant
选择。
EXAMPLES¶
示例 test.container
:
[Unit]
Description=A minimal container
[Container]
# Use the centos image
Image=quay.io/centos/centos:latest
# Use volume and network defined below
Volume=test.volume:/data
Network=test.network
# In the container we just run sleep
Exec=sleep 60
[Service]
# Restart service when sleep finishes
Restart=always
# Extend Timeout to allow time to pull the image
TimeoutStartSec=900
# ExecStartPre flag and other systemd commands can go here, see systemd.unit(5) man page.
ExecStartPre=/usr/share/mincontainer/setup.sh
[Install]
# Start by default on boot
WantedBy=multi-user.target default.target
示例 test.kube
:
[Unit]
Description=A kubernetes yaml based service
Before=local-fs.target
[Kube]
Yaml=/opt/k8s/deployment.yml
[Install]
# Start by default on boot
WantedBy=multi-user.target default.target
示例 test.volume
:
[Volume]
User=root
Group=root
Label=org.test.Key=value
示例 test.network
:
[Network]
Subnet=172.16.0.0/24
Gateway=172.16.0.1
IPRange=172.16.0.0/28
Label=org.test.Key=value
Pod中的容器示例:
test.pod
[Pod]
PodName=test
centos.container
[Container]
Image=quay.io/centos/centos:latest
Exec=sh -c "sleep inf"
Pod=test.pod
另请参阅¶
systemd.unit(5), systemd.service(5), podman-run(1), podman-network-create(1), podman-auto-update(1) [systemd.unit(5)]