podman-auto-update

Podmanに標準で付属する、コンテナイメージの自動更新機能。systemd管理下で動くコンテナに対して、新しいイメージが公開されていれば取得・再起動を行う。podman-auto-update.serviceと、それをデフォルトで毎日深夜(ランダム遅延900秒付き)にトリガーするpodman-auto-update.timerのペアで構成される。

有効化の条件

対象にできるのはsystemd管理下のコンテナのみ。以下3条件が必要。

  1. 完全修飾されたイメージ参照であること(例: quay.io/podman/stable:latest)
  2. コンテナにAutoUpdate=registry(または対応するラベルio.containers.autoupdate)を指定すること
  3. podman-auto-update.timerを有効化すること(rootlessならsystemctl --user enable --now podman-auto-update.timer)

AutoUpdateポリシー

  • registry(image): レジストリに問い合わせ、リモートイメージとローカルのダイジェストを比較。異なれば更新とみなす。
  • local: レジストリには問い合わせず、ローカルストレージ内のダイジェスト差分だけで判定する。

Kubernetesマニフェスト形式でコンテナを定義する場合、io.containers.autoupdateラベルは全コンテナに適用され、io.containers.autoupdate/$containerとすれば特定コンテナのみに適用できる。

Quadletでの設定例

Quadlet(systemdユニットファイルの拡張構文でコンテナを定義する仕組み)では、.containerファイルにAutoUpdate=を書くだけでよい。

[Container]
Image=registry.fedoraproject.org/fedora:latest
Exec=sleep infinity
AutoUpdate=registry

~/.config/containers/systemd/(rootless)に配置し、systemctl --user daemon-reloadで反映する。

ロールバック挙動

デフォルト(--rollback)では、イメージ更新後のsystemdユニット再起動が失敗すると前のイメージに戻して再起動する。ただしこれが正しく機能するには、コンテナが--sdnotify=containerで作成され、READYメッセージをsd-notify経由で送る必要がある。そうしないと再起動成功の判定ができず、ロールバック判断が正確にならない。

出典

#container #linux #systemd

作成日時: 2026-08-19 18:05 / 更新日時: 2026-08-19 18:05