Ubuntu 24.04
Sponsored Link

Podman : コンテナーの自動起動の設定2024/05/05

 
Systemd ユニットファイルを生成して、システム起動時にコンテナーが自動起動できるよう設定します。
[1] Quadlet を使用したコンテナーサービスの設定です。
root@dlp:~#
podman images

REPOSITORY                 TAG              IMAGE ID      CREATED       SIZE
localhost/podman-pause     4.9.3-0          070ddb5147bc  2 hours ago   835 kB
srv.world/iproute          latest           4ef0738fb3ef  3 hours ago   123 MB
srv.world/ubuntu-nginx     latest           1b1a4d3f4f26  5 hours ago   125 MB
srv.world/ubuntu-apache2   latest           38d508336863  6 hours ago   226 MB
dlp.srv.world:5000/ubuntu  my-registry      bf3dc08bfed0  5 days ago    78.7 MB
docker.io/library/ubuntu   latest           bf3dc08bfed0  5 days ago    78.7 MB
docker.io/moby/buildkit    buildx-stable-1  1a21071780b0  9 days ago    199 MB
docker.io/library/mariadb  latest           465bc4da7f09  2 months ago  411 MB

# ファイル名 ⇒ (任意の名称).container

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

[Container]
# 任意の名称
ContainerName=ubuntu-nginx
# 使用するコンテナーイメージ
Image=srv.world/ubuntu-nginx
# ポート
PublishPort=80:80

[Service]
Restart=always

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

# apparmor の下記プロファイルは無効にする

root@dlp:~#
apparmor_parser -R /etc/apparmor.d/podman

root@dlp:~#
apparmor_parser -R /etc/apparmor.d/crun

root@dlp:~#
ln -s /etc/apparmor.d/podman /etc/apparmor.d/disable/

root@dlp:~#
ln -s /etc/apparmor.d/crun /etc/apparmor.d/disable/
root@dlp:~#
systemctl daemon-reload

root@dlp:~#
systemctl start ubuntu-nginx.service
[2] Quadlet を使用した Pod サービスの設定です。
root@dlp:~#
podman images

REPOSITORY                 TAG              IMAGE ID      CREATED       SIZE
localhost/podman-pause     4.9.3-0          070ddb5147bc  4 hours ago   835 kB
srv.world/iproute          latest           4ef0738fb3ef  5 hours ago   123 MB
srv.world/ubuntu-nginx     latest           1b1a4d3f4f26  8 hours ago   125 MB
srv.world/ubuntu-apache2   latest           38d508336863  8 hours ago   226 MB
dlp.srv.world:5000/ubuntu  my-registry      bf3dc08bfed0  5 days ago    78.7 MB
docker.io/library/ubuntu   latest           bf3dc08bfed0  5 days ago    78.7 MB
docker.io/moby/buildkit    buildx-stable-1  1a21071780b0  9 days ago    199 MB
docker.io/library/mariadb  latest           465bc4da7f09  2 months ago  411 MB

# Pod 設定ファイル作成
# 書式は 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: ubuntu-nginx
        ports:
          - name: web
            containerPort: 80

# ファイル名 ⇒ (任意の名称).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
root@dlp:~#
podman pod ls

POD ID        NAME           STATUS      CREATED         INFRA ID      # OF CONTAINERS
ad84c14026cc  nginx-pod-pod  Running     12 seconds ago  502dbb5b0814  2
関連コンテンツ