11.5. Podman を使用した systemd ユニットファイルの生成
Podman により、systemd
はコンテナープロセスを制御および管理できます。podman generate systemd
コマンドを使用して、既存のコンテナーと Pod の systemd
ユニットファイルを生成できます。生成されたユニットファイルは頻繁に変更され (Podman に対する更新)、podman generate systemd
で最新のユニットファイルの取得を確認できるので、podman generate systemd
の使用を推奨します。
podman v4.6 以降では、Quadlets を使用できるようになりました。Quadlets を使用すると、通常の systemd
ユニットファイルと同様の形式でコンテナーを実行する方法を記述でき、systemd
でコンテナーを実行する際の複雑さを意識せずに済みます。
前提条件
-
container-tools
メタパッケージがインストールされている。
手順
コンテナー (例:
myubi
) を作成します。podman create --name myubi registry.access.redhat.com/ubi10:latest sleep infinity
$ podman create --name myubi registry.access.redhat.com/ubi10:latest sleep infinity 0280afe98bb75a5c5e713b28de4b7c5cb49f156f1cce4a208f13fee2f75cb453
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー名または ID を使用して
systemd
ユニットファイルを生成し、それを~/.config/systemd/user/container-myubi.service
ファイルに送ります。podman generate systemd --name myubi > ~/.config/systemd/user/container-myubi.service
$ podman generate systemd --name myubi > ~/.config/systemd/user/container-myubi.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
生成された
systemd
ユニットファイルの内容を表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Restart=on-failure
行は再起動ポリシーを設定し、サービスを正常に開始または停止できない場合、またはプロセスがゼロ以外で終了した場合に再起動するようにsystemd
に指示します。 -
ExecStart
行は、コンテナーの開始方法を示しています。 -
ExecStop
行は、コンテナーを停止して削除する方法を示しています。
-