Red Hat Training

A Red Hat training course is available for RHEL 8

第6章 実行中の UBI コンテナーへのソフトウェアの追加

UBI イメージは、Red Hat のコンテンツで構築されます。また、この UBI イメージは、UBI でインストールするのに自由に利用できる Red Hat Enterprise Linux パッケージのサブセットも提供します。ソフトウェアを追加または更新する場合、UBI イメージは、公式の Red Hat の RPM を保持するのに利用できる無料の yum リポジトリーを指定するように事前設定されています。

UBI コンテナーを実行するパッケージを UBI リポジトリーから追加するには、以下を行います。

  • ubi イメージで、yum コマンドをインストールするとパッケージを取り出せます。
  • ubi-minimal イメージには、yum の代わりに、microdnf コマンド (小規模な機能セット) が含まれます。

実行中のコンテナーでソフトウェアパッケージを直接インストールして作業する場合は、パッケージを一時的に追加します。もしくは、リポジトリーについて学ぶことになります。UBI ベースのイメージを構築する詳細な方法は「UBI ベースのイメージの構築」を参照してください。

UBI イメージを使用する際に考慮すべき問題を以下に示します。

  • 既存のアプリケーションストリームランタイムイメージで使用される数百の RPM パッケージは、新しい UBI イメージに同梱されている yum リポジトリーに保存されます。UBI イメージにこの RPM をインストールして、必要なランタイム (python、php、nodejs など) をエミュレートします。
  • UBI の最小イメージ (ubi8/ubi-minimal) には、いくつかの言語ファイルとドキュメントが含まれていないため、そのコンテナーで rpm -Va を実行すると、多くのパッケージの内容が欠落しているか変更されているものとして表示されます。そのコンテナーの中にファイルの完全なリストがあることが重要な場合は、Tripwire などのツールを使用してファイルをコンテナーに記録し、後で確認することを考慮してください。
  • レイヤー構造のイメージを作成したら、podman history を使用して、どの UBI イメージが構築されたかを確認します。たとえば、前に示した webserver の例を完了したら、podman history johndoe/webserver と入力して、それが構築されたイメージに、Dockerfile の FROM 行に追加した UBI イメージのイメージ ID が含まれていることを確認します。

UBI コンテナーにソフトウェアを追加する場合は、サブスクライブしている RHEL ホスト、またはサブスクライブしていない (または非 RHEL) システムで UBI イメージを更新する手順が異なります。UBI イメージを使用する 2 つの方法を以下に示します。

6.1. UBI コンテナーへのソフトウェアの追加 (サブスクライブされたホスト)

登録およびサブスクライブされた RHEL ホストで UBI コンテナーを実行している場合は、主要な RHEL Server リポジトリーが、標準の UBI コンテナーとすべての UBI リポジトリーで有効になります。そのため、Red Hat パッケージの全セットが利用できます。UBI の最小コンテナーでは、すべての UBI リポジトリーがデフォルトで有効になりますが、デフォルトではホストではリポジトリーが有効になっていません。