14.9. systemd を使用したコンテナーの自動更新
Podman を使用したコンテナーの自動更新 セクションで述べたように、
podman auto-update
コマンドを使用してコンテナーを更新できます。カスタムスクリプトに組み込み、必要に応じて呼び出すことができます。コンテナーを自動更新するもう 1 つの方法は、プリインストールされている podman-auto-update.timer
および podman-auto-update.service
systemd
サービスを使用することです。podman-auto-update.timer
は、特定の日付と時刻で自動更新をトリガーするように設定できます。podman-auto-update.service
は、systemctl
コマンドによってさらに開始することも、他の systemd
サービスによる依存関係として使用することもできます。その結果、時間およびイベントに基づく自動更新は、個々のニーズやユースケースを満たすためにさまざまな方法でトリガーできます。
Podman v4.6 以降では、Quadlet を使用できるようになりました。Quadlet を使用すると、通常の systemd
ユニットファイルと同様の形式でコンテナーを実行する方法を記述でき、systemd
でコンテナーを実行する際の複雑さを意識せずに済みます。
前提条件
-
container-tools
メタパッケージがインストールされている。
手順
podman-auto-update.service
ユニットファイルを表示します。# cat /usr/lib/systemd/system/podman-auto-update.service [Unit] Description=Podman auto-update service Documentation=man:podman-auto-update(1) Wants=network.target After=network-online.target [Service] Type=oneshot ExecStart=/usr/bin/podman auto-update [Install] WantedBy=multi-user.target default.target
podman-auto-update.timer
ユニットファイルを表示します。# cat /usr/lib/systemd/system/podman-auto-update.timer [Unit] Description=Podman auto-update timer [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target
この例では、
podman auto-update
コマンドは、毎日、深夜に起動します。システム起動時に
podman-auto-update.timer
サービスを有効にします。# systemctl enable podman-auto-update.timer
systemd
サービスを開始します。# systemctl start podman-auto-update.timer
オプション: タイマーをリスト表示します。
# systemctl list-timers --all NEXT LEFT LAST PASSED UNIT ACTIVATES Wed 2020-12-09 00:00:00 CET 9h left n/a n/a podman-auto-update.timer podman-auto-update.service
podman-auto-update.timer
がpodman-auto-update.service
を有効化したことが確認できます。