Red Hat Training

A Red Hat training course is available for RHEL 8

10.7. systemd を使用したコンテナーの自動更新

Podman を使用したコンテナーの自動更新」のセクションで説明したように、podman auto-update コマンドを使用してコンテナーを更新できます。カスタムスクリプトに組み込み、必要に応じて呼び出すことができます。コンテナーを自動更新する別の方法として、プレインストールされた podman-auto-update.timer および podman-auto-update.service systemd サービスを使用できます。podman-auto-update.timer は、特定の日付と時刻で自動更新をトリガーするように設定できます。podman-auto-update.service はさらに systemctl コマンドから起動することも、他の systemd サービスの依存関係として使用することもできます。その結果、時間とイベントに基づく自動更新をさまざまな方法でトリガーし、個別のニーズやユースケースを満たすことができます。

前提条件

  • container-tools モジュールがインストールされている。

     # yum module install -y container-tools

手順

  1. 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
  2. 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 コマンドは、毎日、深夜に起動します。

  3. システム起動時に podman-auto-update.timer サービスを有効にします。

    # systemctl enable podman-auto-update.timer
  4. systemd サービスを起動します。

    # systemctl start podman-auto-update.timer
  5. 必要に応じて、すべてのタイマーを一覧表示します。

    # 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.timerpodman-auto-update.service を有効化したことが確認できます。