5.3. Red Hat Quay リポジトリーの概要
リポジトリーは、関連するコンテナーイメージのセットを一元的に保存するための場所を提供します。これらのイメージを使用して、アプリケーションとその依存関係を標準化された形式で構築できます。
リポジトリーは名前空間を使用して整理します。名前空間には、それぞれ複数のリポジトリーを含めることができます。たとえば、個人プロジェクト用の名前空間、会社用の名前空間、または組織内の特定のチーム用の名前空間を設定できます。
有料プランでは、Quay.io はユーザーにリポジトリーへのアクセス制御を提供します。リポジトリーをパブリックにすると、誰でもリポジトリーからイメージをプルまたはダウンロードできるようになります。リポジトリーをプライベートにすると、許可されたユーザーまたはチームのみにアクセスが制限されます。
Quay.io の無料利用枠では、プライベートリポジトリーは許可されません。プライベートリポジトリーを作成するには、Quay.io の有料層にアップグレードする必要があります。詳細は、「Quay.io の価格に関する情報」を参照してください。
Quay.io でリポジトリーを作成するには 2 つの方法があります。適切な podman
コマンドを使用してイメージをプッシュする方法と、Quay.io の UI を使用する方法です。UI を使用すると、リポジトリーを削除することもできます。
最初に UI でリポジトリーを作成せずにコマンドラインインターフェイス (CLI) を介してイメージをプッシュすると、プランに関係なく、作成されたリポジトリーは Private に設定されます。
イメージをプッシュする前に、Quay.io UI でリポジトリーを作成することを推奨します。Quay.io はプランのステータスをチェックし、プランがアクティブでない場合はプライベートリポジトリーの作成を許可しません。
5.3.1. UI を使用したリポジトリーの作成
Quay.io UI を使用してリポジトリーを作成するには、次の手順を実行します。
手順
v2 UI を使用してリポジトリーを作成するには、次の手順を実行します。
手順
- ナビゲーションペインで Repositories をクリックします。
- Create Repository をクリックします。
名前空間 (例: quayadmin) を選択し、リポジトリー名 (例:
testrepo
) を入力します。重要リポジトリー名には単語 *
build
*trigger
*tag
を使用しないでください。これらの単語をリポジトリー名に使用すると、ユーザーがリポジトリーにアクセスできなくなり、リポジトリーを完全に削除できなくなります。このようなリポジトリーを削除しようとすると、
Failed to delete repository <repository_name>, HTTP404 - Not Found.
エラーが返されます。Create をクリックします。
これで、サンプルリポジトリーが Repositories ページの下に表示されるはずです。
-
オプション: リポジトリーを非公開に設定するには、Settings
Repository visibility Make private をクリックします。
5.3.2. Podman を使用したリポジトリーの作成
適切な認証情報がある場合は、Podman を使用して、Quay.io インスタンスにまだ存在しないリポジトリーにイメージを プッシュ できます。イメージのプッシュとは、コンテナーイメージをローカルシステムまたは開発環境から Quay.io などのコンテナーレジストリーにアップロードするプロセスを指します。イメージをレジストリーにプッシュすると、リポジトリーが作成されます。
最初に UI でリポジトリーを作成せずにコマンドラインインターフェイス (CLI) を介してイメージをプッシュすると、プランに関係なく、作成されたリポジトリーは Private に設定されます。
イメージをプッシュする前に、Quay.io UI でリポジトリーを作成することを推奨します。Quay.io はプランのステータスをチェックし、プランがアクティブでない場合はプライベートリポジトリーの作成を許可しません。
イメージをプッシュしてイメージリポジトリーを作成するには、次の手順を実行します。
前提条件
-
podman
CLI をダウンロードしてインストールした。 - レジストリーにログインしている。
- イメージ (busybox など) をプルした。
手順
サンプルレジストリーからサンプルページを取得します。以下に例を示します。
$ podman pull busybox
出力例
Trying to pull docker.io/library/busybox... Getting image source signatures Copying blob 4c892f00285e done Copying config 22667f5368 done Writing manifest to image destination Storing signatures 22667f53682a2920948d19c7133ab1c9c3f745805c14125859d20cede07f11f9
ローカルシステム上のイメージに、新しいリポジトリーとイメージ名をタグ付けします。以下に例を示します。
$ podman tag docker.io/library/busybox quay.io/quayadmin/busybox:test
イメージをレジストリーにプッシュします。この手順の後に、ブラウザーを使用して、リポジトリーでタグ付けされたイメージを確認できます。
$ podman push --tls-verify=false quay.io/quayadmin/busybox:test
出力例
Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signatures