Quadlet и systemd
Quadlet и systemd
Quadlet — systemd-генератор Podman. Файлы с расширениями ниже преобразуются в .service-юниты и управляются через systemctl.
Типы файлов
Секции [Unit], [Service] и [Install] — стандартные для systemd. Параметры Podman задаются в [Container], [Pod], [Volume] и т. д.
Каталоги
rootful: /run/containers/systemd/, /etc/containers/systemd/, /usr/share/containers/systemd/
rootless: $XDG_RUNTIME_DIR/containers/systemd/, ~/.config/containers/systemd/, /etc/containers/systemd/users/, /etc/containers/systemd/users/$(UID)/
Примеры
Контейнер
/etc/containers/systemd/nginx.container:
[Unit]
Description=Nginx
[Container]
Image=docker.io/library/nginx
PublishPort=8080:80
[Service]
Restart=always
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start nginx.service
Под и контейнер в поде
app.pod:
[Pod]
PodName=app
PublishPort=3000:3000
app.container:
[Container]
Image=docker.io/gitea/gitea:latest
Pod=app.pod
Том, сеть и контейнер
data.volume:
[Volume]
backend.network:
[Network]
Subnet=10.89.0.0/24
backend.container:
[Container]
Image=docker.io/library/postgres:15
Volume=data.volume:/var/lib/postgresql/data
Network=backend.network
Kubernetes YAML
deploy.kube:
[Unit]
Description=Приложение из Kubernetes YAML
[Kube]
Yaml=/opt/app/deployment.yml
[Install]
WantedBy=multi-user.target
Команды podman quadlet
Установка и управление Quadlet-файлами текущего пользователя (rootless):
podman quadlet install <файл|каталог|URL>
podman quadlet list
podman quadlet print <имя>
podman quadlet rm <имя>
Файлы устанавливаются в ~/.config/containers/systemd/.