2 ポイント 投稿者 GN⁺ 2025-03-25 | 1件のコメント | WhatsAppで共有
  • Quadletは、Podmanコンテナをsystemdサービスとして実行できるようにするツール。これは、サーバー再起動後にバックグラウンドでコンテナを自動起動するのに役立つ。
  • 以前は podman generate systemd コマンドを使っていたが、現在はQuadletへの移行が推奨されている。

従来の方法

  • コンテナを作成し、systemdサービスファイルを生成した後、そのファイルを適切なディレクトリへ移動してサービスを有効化する必要があった。
  • この手順はコマンドが長く反復的で、手動でファイルを修正しなければならない不便さがあった。

問題点

  • 従来の方法は複雑で、柔軟性にも欠けていた。
  • Docker Composeの手軽さと比べると、多くの作業を手動で行う必要があった。

Quadlet

  • Quadletを使えば、.container ファイルを作成してコンテナを管理できる。
  • [Container] セクションで、イメージ、ポート、ボリューム、環境変数を設定できる。
  • [Service] セクションでは、コンテナの再起動ポリシーを設定できる。
  • [Install] セクションでは、起動時の自動開始を設定できる。

優れている点

  • 1つのファイルですべての設定を管理でき、systemdのあらゆるオプションを利用できる。
  • 設定ファイルを書くほうが、スクリプトを書くより簡単。
  • 依存関係を簡単に管理できる。

依存関係

  • アプリコンテナがデータベースコンテナに依存する場合は、[Unit] セクションで RequiresAfter オプションを使って依存関係を設定できる。

ファイルが多すぎる?

  • 複数のファイルに分けることで、複雑さを減らせることがある。
  • 関連するファイル同士をグループ化して管理できる。

イメージの更新

  • AutoUpdate=registry オプションを使えば、podman auto-update コマンドでイメージ更新とコンテナ再起動が可能。
  • latest タグの使用は危険な場合があるため、具体的なバージョンタグの使用が推奨される。

podman-composeについて

  • podman-compose は、ComposeファイルをPodmanとsystemd向けに変換するスクリプトだが、長期的な代替手段としては適していない。
  • Quadletは、Podmanのデーモンレス設計とより相性がよい。

追加資料

  • Quadletをより深く理解するために、podman-systemd.unit のマニュアルページを読むことが推奨される。
  • Quadletはコンテナだけでなく、pod、ネットワーク、ボリュームも管理できる。
  • systemdユニットファイルの作成に慣れていないなら、systemd.unitsystemd.service のマニュアルページも参考にするとよい。
  • podlet は、PodmanコマンドやComposeファイルからQuadletファイルを生成するのに役立つツール。

1件のコメント

 
GN⁺ 2025-03-25
Hacker Newsの意見
  • QuadletはDocker Composeの代替として、「本番環境に近い環境で相互依存するコンテナを実行する」用途では有用だが、開発環境ではあまり有用ではない

    • Docker Composeはデータベース、Redis、OpenSearchなどの依存関係を簡単に管理できる
    • Quadletはファイルを~/.config/containers/systemdに置く必要があるため、プロジェクトとの分離が難しい
    • 多くの開発者はいまだにDockerを使っており、Podmanを使うには手動で設定を追加する必要がある
    • 開発向けのDocker Compose代替が必要だが、Quadletは適していない
  • Quadletを知ってAtomic OSとrootless Quadletをベースにホームラボを構築し、強く勧めている

    • systemdのソケットアクティベーションを使えるため、Traefikを自動的に有効化できる
    • rootless構成でソースIPを保持できる唯一の方法である
  • QuadletはPodmanから生まれた最高のツールの1つであり、コンテナベースの運用に関心のある人に勧められる

    • コンテナをシステムサービスのように扱えるので便利である
    • Dockerの代替としてQuadletを使えば、よりすっきりした構成が可能になる
    • ローカル開発環境ではDocker Composeの代替ではなく、Podmanチームもこの点にあまり関心がない
  • Docker Composeの利便性のため、多くの人がDockerからPodmanへの移行をためらっている

    • QuadletはDocker Composeの代替としてPodmanを使えるようにしてくれる
    • Dockerが恋しくなることはなく、rootlessコンテナ実行の安全性を享受できる
  • Podman-Composeは「メンテナンスされていない」と言及されていたが、Podletも似たような状態である

    • PodletはDocker Composeの多くの機能をサポートしておらず、複数のyamlファイルを重ねることもサポートしていない
  • PodmanのupstreamがDebian/Ubuntu向けのリポジトリを提供しておらず不便である

    • そのためDocker Composeに戻ることになった
  • openSUSE MicroOSを使ってPodmanコンテナをsystemd/quadlet配下で実行するようになり、現在の構成に満足している

    • Podman Composeは使いにくく、Quadletのほうがより良い選択である
  • systemdとPodmanの統合が気に入っている

    • Docker Composeは依然として競争力があり、Quadletはプロジェクトディレクトリを複雑にする可能性がある
  • QuadletがHacker Newsのフロントページに載ったのは興味深い

    • Kubernetes YAMLを使うことで移植性が高い
  • Quadletはコンテナを通常のシステムサービスのように使えるようにしてくれる

    • rootlessコンテナのUXはこの概念とうまく噛み合っていない
    • rootless Quadletをシステムセッション内で実行できるようになってほしい