Fedora 40
Sponsored Link

Podman : Generate Systemd unit file2024/05/03

 
It's possible to generate Systemd unit file and set auto-starting for containers.
[1] Configure container service by using Quadlet.
[root@dlp ~]#
podman images

REPOSITORY                         TAG               IMAGE ID      CREATED            SIZE
localhost/podman-pause             5.0.2-1713312000  93b49289d5db  17 minutes ago     742 kB
srv.world/iproute                  latest            dafe2df281ae  25 minutes ago     307 MB
localhost/root_web                 latest            53d5fa92aef2  About an hour ago  340 MB
srv.world/fedora-nginx             latest            cf5af4219b13  2 hours ago        340 MB
srv.world/fedora-httpd             latest            9d6d273370e2  2 hours ago        343 MB
dlp.srv.world:5000/fedora          my-registry       19f52f582331  3 hours ago        229 MB
registry.fedoraproject.org/fedora  latest            19f52f582331  3 hours ago        229 MB
docker.io/library/mariadb          latest            465bc4da7f09  2 months ago       411 MB

# file name ⇒ (any name).container

[root@dlp ~]#
vi /etc/containers/systemd/fedora-nginx.container
[Unit]
Description=Nginx container
After=local-fs.target

[Container]
# any name
ContainerName=fedora-nginx
# container image to be used
Image=srv.world/fedora-nginx
# port
PublishPort=80:80

[Service]
Restart=always

[Install]
WantedBy=multi-user.target default.target

[root@dlp ~]#
systemctl daemon-reload

[root@dlp ~]#
systemctl start fedora-nginx.service
[2] Configure pod service by using Quadlet.
[root@dlp ~]#
podman images

REPOSITORY                         TAG               IMAGE ID      CREATED            SIZE
localhost/podman-pause             5.0.2-1713312000  93b49289d5db  18 minutes ago     742 kB
srv.world/iproute                  latest            dafe2df281ae  26 minutes ago     307 MB
localhost/root_web                 latest            53d5fa92aef2  About an hour ago  340 MB
srv.world/fedora-nginx             latest            cf5af4219b13  2 hours ago        340 MB
srv.world/fedora-httpd             latest            9d6d273370e2  2 hours ago        343 MB
dlp.srv.world:5000/fedora          my-registry       19f52f582331  3 hours ago        229 MB
registry.fedoraproject.org/fedora  latest            19f52f582331  3 hours ago        229 MB
docker.io/library/mariadb          latest            465bc4da7f09  2 months ago       411 MB

# create pod configuration file
# format is the same as Kubernetes

[root@dlp ~]#
vi /etc/containers/systemd/nginx-pod.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-pod
  labels:
    name: nginx-pod
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-pod
  template:
    metadata:
      labels:
        app: nginx-pod
    spec:
      containers:
      - name: nginx-pod
        image: fedora-nginx
        ports:
          - name: web
            containerPort: 80

# file name ⇒ (any name).kube

[root@dlp ~]#
vi /etc/containers/systemd/nginx-pod.kube
[Unit]
Description=Web service pod
After=local-fs.target

[Kube]
Yaml=/etc/containers/systemd/nginx-pod.yml
PublishPort=80:80

[Service]
Restart=always

[Install]
WantedBy=multi-user.target default.target

[root@dlp ~]#
systemctl daemon-reload

[root@dlp ~]#
systemctl start nginx-pod.service
Matched Content