Oracle Cloud Infrastructureドキュメント

リポジトリについて

Oracle Cloud Infrastructure Registryの関連イメージは、便宜上、意味のあるリポジトリにグループ化できます。

リポジトリはプライベートまたはパブリックにすることができます。 インターネットにアクセスし、適切なURLを知っているユーザーは、Oracle Cloud Infrastructure Registryの公開リポジトリからイメージを取得できます。

特定のリージョンおよびテナンシ内にリポジトリが存在します。 リポジトリを所有するテナンシを参照する際に、テナンシ・ネームスペースを指定します。 テナンシ・ネームスペースは、英数字の自動生成ランダム文字列です。 たとえば、acme-devテナンシのネームスペースはansh81vru1zpである可能性があります。 一部の古いテナンシの場合、ネームスペース文字列がすべて小文字のテナンシ名(acme-devなど)と同じである可能性があります。 現行のテナンシのテナンシ・ネームスペースを調べるには、ユーザーメニュー(ユーザー・メニュー・アイコン)を開き、テナンシ:をクリックします。

テナンシ管理者グループに属しているか、またはREPOSITORY_MANAGEパーミッションが付与されている必要があります:

  • 新しいパブリック・リポジトリを作成
  • 既存のリポジトリを公開リポジトリに変更
  • 既存のパブリック・リポジトリをプライベート・リポジトリに変更

リポジトリを非公開にすると、(テナンシ管理者グループに所属するユーザーと一緒に)リポジトリ上で操作を実行できます。 アイデンティティ・ポリシーを使用すると、作成したリポジトリ(パブリックとプライベートの両方)に対して他のユーザーが他の操作を実行できるようになります。

通常、リポジトリ内のイメージは、それぞれのバージョンがタグで識別される同じソース・イメージの異なるバージョン(たとえば'acme-web-app')です(たとえば'acme-web-app:4.6.3' )。

たとえば、便宜上、アッシュバーン・リージョンのacme-devテナンシで複数のバージョンのacme-web-appイメージをproject01という名前のリポジトリにグループ化することができます。 これを行うには、イメージをプッシュするときにリポジトリの名前をイメージ名に含めます。形式は<region-code>.ocir.io/<tenancy-namespace>/<repo-name>/<image-name>です:<tag> たとえば、iad.ocir.io/ansh81vru1zp/project01/acme-web-app:4.6.3です。 その後、docker pushコマンドを使用すると、イメージ名にリポジトリが存在するため、イメージが確実に目的のリポジトリにプッシュされます。

イメージをプッシュし、すでに存在しないリポジトリの名前を含めると、新しいプライベート・リポジトリが自動的に作成されます。 たとえば、docker push iad.ocir.io/ansh81vru1zp/project02/acme-web-app:7.5.2などのコマンドを入力しても、project02リポジトリが存在しない場合は、project02というプライベート・リポジトリが自動的に作成されます。

イメージをプッシュし、リポジトリ名が含まれていない場合、イメージ名がリポジトリの名前として使用されます。 たとえば、リポジトリ名を含まないdocker push iad.ocir.io/ansh81vru1zp/acme-web-app:7.5.2のようなコマンドを入力すると、イメージ名(acme-web-app)がプライベート・リポジトリの名前として使用されます。

あるいは、コンソールを使用して空のリポジトリを作成し、そのリポジトリに名前を付けることができます。 テナンシ管理者グループに属しているか、またはREPOSITORY_MANAGE権限が与えられている場合は、リポジトリをプライベートまたはパブリックにするかどうかを指定することもできます。 イメージ名にリポジトリを含むOracle Cloud Infrastructure Registryに次にプッシュしたイメージは、そのリポジトリにプッシュされます。