検索

第2章 RHEL のブート可能なコンテナーイメージのビルドおよびテスト

download PDF

次の手順では、Podman を使用してコンテナーイメージをビルドおよびテストします。OpenShift Container Platform などの他のツールを使用することもできます。コンテナーを使用して RHEL システムを設定する例については、rhel-bootc-examples リポジトリーを参照してください。

重要

Red Hat は、rhel9/rhel-bootc コンテナーイメージをテクノロジープレビューとして提供します。テクノロジープレビュー機能は、近々発表予定の製品イノベーションをリリースに先駆けて提供します。これにより、お客様は機能をテストし、開発プロセス中にフィードバックを提供することができます。ただし、これらの機能は完全にはサポートされません。テクノロジープレビュー機能のドキュメントは不完全であったり、基本的なインストールや設定に関する情報しか含まれていなかったりする場合があります。テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。

図2.1 Containerfile からの指示を使用してイメージを構築し、コンテナーをテストし、イメージをレジストリーにプッシュして他のユーザーと共有する

639 RHEL Bootable Container Bifrost 0524 2

一般的な Containerfile の構造は次のとおりです。

FROM registry.redhat.io/rhel9/rhel-bootc:latest

RUN dnf -y install [software] [dependencies] && dnf clean all

ADD [application]
ADD [configuration files]

RUN [config scripts]

rhel-9-bootc コンテナーイメージは OCI イメージ形式を再利用します。

  • rhel-9-bootc コンテナーイメージは、システムへのインストール時にはコンテナー設定セクション (Config) を無視します。
  • rhel-9-bootc コンテナーイメージは、podmandocker などのコンテナーランタイムを使用してこのイメージを実行するときには、コンテナー設定セクション (Config) を無視しません。

たとえば、rhel-9-bootc イメージのシステムへのインストール時には、Containerfile 内の以下のコマンドは無視されます。

  • ENTRYPOINT および CMD (OCI: Entrypoint/Cmd): 代わりに CMD/sbin/init を設定できます。
  • ENV (OCI: Env): systemd 設定を変更して、グローバルシステム環境を設定します。
  • EXPOSE (OCI: exposedPorts): ランタイム時にシステムのファイアウォールやネットワークがどのように機能するかとは無関係です。
  • USER (OCI: User): 代わりに、RHEL ブート可能コンテナー内の個々のサービスを、権限のないユーザーとして実行するように設定します。

Containerfile および Dockerfile 内で使用できる利用可能なコマンドは同じです。

注記

このリリースでは、カスタム rhel-bootc ベースイメージのビルドはサポートされていません。

2.1. コンテナーイメージのビルド

Containerfile からの指示を使用してイメージをビルドするには、podman build コマンドを使用します。

前提条件

  • container-tools メタパッケージがインストールされている。

手順

  1. Containerfile を作成します。

    $ cat Containerfile
    FROM registry.redhat.io/rhel9/rhel-bootc:latest
    RUN dnf -y install cloud-init && \
        ln -s ../cloud-init.target /usr/lib/systemd/system/default.target.wants && \
        dnf clean all

    この Containerfile の例では、cloud-init ツールが追加されています。そのため、SSH キーを自動的に取得し、インフラストラクチャーからスクリプトを実行できるほか、インスタンスメタデータから設定とシークレットを収集することもできます。たとえば、このコンテナーイメージを、事前に生成した AWS または KVM ゲストシステムに使用できます。

  2. 現在のディレクトリーの Containerfile を使用して、<image> イメージをビルドします。

    $ podman build -t quay.io/<namespace>/<image>:<tag>

検証

  • すべてのイメージをリスト表示します。

    $ podman images
    REPOSITORY                                  TAG      IMAGE ID       CREATED              SIZE
    localhost/<image>                           latest   b28cd00741b3   About a minute ago   2.1 GB
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.