名称

podman-volume.unit - 用于使用 Podman Quadlet 管理容器卷的 systemd 单元文件

简介

name.container

描述

卷文件以 .volume 扩展名命名,并包含描述命名 Podman 卷的 [Volume] 部分。生成的服务是一个一次性命令,用于确保主机上存在该卷,如果需要则创建它。

默认情况下,Podman 卷与单元同名,但带有 systemd- 前缀,即对于名为 $NAME.volume 的卷文件,生成的 Podman 卷名为 systemd-$NAME,生成的服务文件为 $NAME-volume.serviceVolumeName 选项允许使用用户提供的名称覆盖此默认名称。

使用卷单元允许容器依赖于自动预创建的卷。当使用特殊选项控制卷创建时,这特别有用,因为 Podman 否则会使用默认选项创建卷。

文件位置

.pod 文件放置在以下位置之一

无根

  • $XDG_RUNTIME_DIR/containers/systemd/

  • $XDG_CONFIG_HOME/containers/systemd/~/.config/containers/systemd/

  • /etc/containers/systemd/users/$(UID)

  • /etc/containers/systemd/users/

有根

  • /run/containers/systemd/

  • /etc/containers/systemd/

  • /usr/share/containers/systemd/

选项

[Volume] 的有效选项如下所示

[Volume] 选项

podman volume create 等效项

ContainersConfModule=/etc/nvd.conf

--module=/etc/nvd.conf

Copy=true

--opt copy

Device=tmpfs

--opt device=tmpfs

Driver=image

--driver=image

GlobalArgs=--log-level=debug

--log-level=debug

Group=192

--opt group=192

Image=quay.io/centos/centos:latest

--opt image=quay.io/centos/centos:latest

Label=”foo=bar”

--label “foo=bar”

Options=XYZ

--opt “o=XYZ”

PodmanArgs=--driver=image

--driver=image

Type=type

设备的 文件系统类型

User=123

--opt uid=123

VolumeName=foo

podman volume create foo

[Volume] 部分中支持的键是

ContainersConfModule=module

加载指定的 containers.conf(5) 模块。

此选项可以列出多次。

Copy= (默认为 true)

如果启用,则在第一次运行时将位于卷挂载点的镜像内容复制到卷中。

Device=

为卷挂载的设备的路径。

Driver=

指定卷驱动程序名称。当设置为 image 时,还必须设置 Image 键。

这相当于 Podman --driver 选项。

GlobalArgs=

此键包含在生成文件中直接在 podman 命令之后传递的参数列表。它可以用于访问生成器否则不支持的 Podman 功能。由于生成器不清楚这些参数可能导致的意外交互,因此不建议使用此选项。

其格式是空格分隔的参数列表,可以选择单独转义以允许包含空格和其他控制字符。

此键可以列出多次。

Group=

用于作为卷组的主机(数字)GID 或组名

Image=

Driver 设置为 image 时,指定卷所基于的镜像。建议使用完全限定的镜像名称而不是短名称,这既是为了性能也是为了鲁棒性。

名称的格式与传递给 podman pull 时相同。因此,它支持使用 :tag 或摘要来保证特定的镜像版本。

特殊情况

  • 如果镜像的 name.image 结尾,Quadlet 将使用由相应的 .image 文件拉取的镜像,并且生成的 systemd 服务包含对 $name-image.service(或 .image 文件中设置的服务名称)的依赖。注意:相应的 .image 文件必须存在。

Label=

在卷上设置一个或多个 OCI 标签。格式是 key=value 项的列表,类似于 Environment

此键可以列出多次。

Options=

用于文件系统的挂载选项,如 mount(8) 命令 -o 选项所用。

PodmanArgs=

此键包含在生成文件中直接传递到 podman 命令末尾的参数列表。它可以用于访问生成器否则不支持的 Podman 功能。由于生成器不清楚这些参数可能导致的意外交互,因此不建议使用此选项。

其格式是空格分隔的参数列表,可以选择单独转义以允许包含空格和其他控制字符。

此键可以列出多次。

Type=

mount(8) 命令 -t 选项所用的 Device 的文件系统类型。

User=

用于作为卷所有者的主机(数字)UID 或用户名

VolumeName=

Podman 卷的(可选)名称。如果未指定,默认值与单元同名,但带有 systemd- 前缀,即 $name.volume 文件创建一个 systemd-$name Podman 卷,以避免与用户管理的卷冲突。

示例

最小卷单元

[Volume]
VolumeName=mydata
Label=app=data
User=1000
Group=1000

由镜像支持的卷单元

[Volume]
VolumeName=html
Driver=image
Image=quay.io/centos/centos:latest
Copy=true

另请参阅

systemd.unit(5), podman-volume-create(1), [podman-quadlet(7)]