Red Hat Training

A Red Hat training course is available for RHEL 8

第10章 Podman を使用した systemd へのコンテナーの移植

Podman (Pod Manager) は、簡単なデーモンレスツールである、完全に機能するコンテナーエンジンです。Podman は、他のコンテナーエンジンからの移行を容易にし、Pod、コンテナー、およびイメージの管理を可能にする Docker-CLI と同等のコマンドラインを提供します。

Podman は当初、Linux システム全体の起動や、起動順序、依存関係の確認、失敗したサービス復旧などのサービス管理を行うように設計されませんでした。これは、systemd のような、本格的な初期化システムのジョブです。Red Hat は、コンテナーと systemd の統合について先駆者になり、他のサービスと機能が Linux システムで管理されているのと同じように、Podman により構築された OCI 形式および Docker 形式のコンテナーを管理できます。systemd 初期化サービスを使用して、Pod およびコンテナーを操作できます。podman generate systemd コマンドを使用して、コンテナーおよび Pod の systemd ユニットファイルを生成できます。

systemd ユニットファイルを使用すると、以下が可能になります。

  • コンテナーまたは Pod を systemd サービスとして起動するように設定します。
  • コンテナー化されたサービスを実行して依存関係を確認する順序を定義します (たとえば、別のサービスが実行されていること、ファイルが利用可能であること、またはリソースがマウントされていることなど)。
  • systemctl コマンドを使用して、systemd システムの状態を制御します。

本章では、systemd ユニットファイルを使用してコンテナーおよび Pod の移植可能な記述を生成する方法を説明します。

10.1. systemd サービスの有効化

サービスの有効化には、さまざまなオプションがあります。

手順

  • サービスの有効化:

    • システムの起動時にサービスを有効にするには、ユーザーがログインしているかどうかに拘らず、次のコマンドを実行します。

      # systemctl enable <service>

      systemd ユニットファイルを /etc/systemd/system ディレクトリーにコピーする必要があります。

    • ユーザーのログイン時にサービスを起動し、ユーザーのログアウト時に停止するには、次のコマンドを実行します。

      $ systemctl --user enable <service>

      systemd ユニットファイルを $HOME/.config/systemd/user ディレクトリーにコピーする必要があります。

    • システムの起動時にサービスを起動し、ログアウト後もそのまま起動した状態を保つには、次のコマンドを実行します。

      # loginctl enable-linger <username>

関連情報