14 プライベート・コンテナ・レジストリ
ローカルのプライベート・コンテナ・レジストリ・サーバーを設定して、組織内のコンテナ・イメージをホストします。 プライベート・レジストリは、Oracle Container Registryのミラー化にも使用できます。
このレジストリ・サーバーは、コンテナ・アプリケーションです。 Docker Hubからレジストリ・イメージをダウンロードしたり、サポートが必要な場合はOracle Container Registryからレジストリ・イメージをダウンロードするには、ホストにインターネット接続が必要です。
TLSを設定する必要があるセキュアなプライベート・レジストリを作成できます。 TLSを設定する場合、自己署名認証局(CA)証明書またはCAによって署名された証明書を使用できます。 それ以外の場合、レジストリはテストおよび開発の目的で安全でないレジストリとして作成できます。
ノート:
Docker Hubのレジストリ・イメージを使用して、セキュアでないレジストリとセキュア・レジストリの両方を設定できます。 Oracle Container Registryのレジストリ・イメージは、セキュアなレジストリの設定にのみ使用できます。
安全でないレジストリの作成
TLSを使用せずにローカル・コンテナ・レジストリを作成します。 これは、テストまたは開発に使用できます。 本番システムでは、TLSを使用するセキュアなレジストリをお薦めします。
安全でないレジストリを作成する場合は、それをPodmanレジストリ構成ファイルに追加して、レジストリの使用時に--tls-verify=falseオプションを使用しないようにできます。 詳細は、「セキュアでないレジストリの追加」を参照してください。
セキュア・レジストリの作成
TLSを使用してローカル・コンテナ・レジストリを作成します。 本番システムでは、TLSを使用するセキュアなレジストリをお薦めします。
開始する前に、前提条件を検討していることを確認してください。
-
レジストリ・サーバーでは、レジストリ・データを
/opt/registry/に格納するために、15 GB以上の使用可能なディスク領域が必要です。 -
レジストリ用に別のファイル・システム(できればbtrfs形式のファイル・システム)を作成することをお薦めします。 Btrfsファイル・システムを使用すると、レジストリ・ファイル・システムを簡単にスケーリングし、ファイル・システムのスナップショットなどのbtrfs機能を利用できます。 btrfsの設定の詳細は、次のドキュメントを参照してください。
-
WebサーバーにTLSを使用する場合と同様に、レジストリ・ホストは、レジストリでトランスポート層セキュリティ(TLS)を有効にするために、有効なX.509証明書と秘密キーを要求します。 信頼できる認証局(CA)によって署名された証明書または自己署名証明書を使用できます。 自己署名証明書は、テスト目的で使用できます。 自己署名証明書および秘密キーの作成の詳細は、Oracle Linux: 証明書および公開キー・インフラストラクチャの管理を参照してください。
ホストにX.509証明書がすでにある場合は、Podmanとともに使用してプライベート・レジストリを作成できます。 ホストのX.509証明書を使用していて、中間CAによって発行された場合は、ホストの証明書を中間CAの証明書と組み合せて、連鎖証明書を作成します。 これにより、ホストと中間CA証明書の両方を含む証明書が作成され、Podmanで検証できます。
catコマンドを使用して、次の形式を使用します。sudo cat host_certificate.crt intermediate_certificate.pem > chained_certificate.crtたとえば:
sudo cat myregistry.example.com.crt intermediate-ca.pem > domain.crt
X.509証明書の配布
レジストリ・ホストが自己署名X.509証明書を使用する場合は、ローカルのコンテナ・レジストリを使用する予定のすべてのホストに証明書を配布する必要があります。
rootユーザーの場合、各レジストリの証明書は/etc/containers/certs.d/registry_hostname:port/に格納されます。 標準ユーザーの場合、証明書は$HOME/.config/containers/certs.d/registry_hostname:port/に格納できます。 registry_hostnameをレジストリ・ホストの名前に変更し、portをコンテナ・レジストリ・サーバーのポート番号(デフォルトでは5000)に変更します。
レジストリと相互作用するPodman、BuildahおよびSkopeoコマンドには、多くの場合、これらの証明書の代替の場所を指定する--cert-dirオプションが用意されています。
レジストリへのイメージのインポート
プライベート・コンテナ・レジストリを設定したら、イメージをレジストリにインポートして、コンテナのデプロイに使用できます。 Oracle Container Registryなどのレジストリからイメージをプルして、ローカル・レジストリにコミットできます。 または、アップストリーム・イメージに基づいて独自のイメージを作成することもできます。
イメージの作成方法の詳細は、「Buildah」を参照してください。 カスタマイズしたイメージをコミットしていた場合は、タグを付けてローカル・レジストリにプッシュできます。