Container Registry は非推奨で、提供終了となります。2024 年 5 月 15 日以降、Artifact Registry は、Container Registry の使用歴がない Google Cloud プロジェクトで gcr.io
ドメインのイメージをホストします。2025 年 3 月 18 日以降、Container Registry は提供終了となります。
非推奨と廃止のタイムラインの詳細については、Container Registry の非推奨とContainer Registry の廃止に備えるをご覧ください。
Artifact Registry は、Google Cloud でコンテナ イメージのストレージと管理を行うための推奨サービスです。Artifact Registry には Container Registry と同じコンテナ管理機能があり、追加の機能と利点があります。Artifact Registry は、コンテナ イメージとコンテナ以外のアーティファクトの両方をサポートするフルマネージド サービスであり、Container Registry の機能を拡張します。
自動移行ツールを使用すると、ダウンタイムやサービスの停止なしで、Container Registry エンドポイントを Artifact Registry gcr.io
リポジトリに移行できます。
新機能の概要
Artifact Registry は、次の機能で Container Registry の機能を拡張します。
- リポジトリ レベルのアクセス制御。
- レイテンシとデータ転送コストを削減し、データ所在地の要件を遵守するために、リージョンでアーティファクトをホストする。
- ワークロードの起動時間を短縮するために、イメージを Google Kubernetes Engine と Dataproc Serverlessにストリーミングする。
- ソースから Cloud Run にデプロイする。
- リポジトリのアクティビティについての監査ログ記録。
- 顧客管理の暗号鍵(CMEK)を使用した暗号化やロケーションの制約などの組織のポリシーの適用。
- コンテナの OS の脆弱性に加えて、Go と Java の脆弱性のスキャンを行う。
- 1 つのホストの背後にある複数のリポジトリを集約する仮想リポジトリ(プレビュー)。
- Docker Hub や Maven Central(プレビュー)などのアップストリーム ソースのアーティファクトをキャッシュに保存するリモート リポジトリ。
これらの機能の詳細については、機能の比較をご覧ください。
mirror.gcr.io
上のキャッシュされた Docker Hub のイメージ
Artifact Registry は、頻繁にアクセスされる公開 Docker Hub イメージを mirror.gcr.io
でキャッシュに保存します。mirror.gcr.io
の使用の詳細については、キャッシュに保存された Docker Hub イメージの pull をご覧ください。
移行オプションを選択する
Artifact Registry への移行に使用できるリポジトリには次の 2 種類があります。
- Artifact Registry の gcr.io リポジトリ
Container Registry の
gcr.io
ホスト名にマッピングされた特殊なリポジトリ。Artifact Registry は、Container Registry ホストのgcr.io
リクエストを、同じ Google Cloud プロジェクト内の対応する Artifact Registry リポジトリにリダイレクトします。次の場合は
gcr.io
リポジトリを使用します。- 既存のイメージと自動化を Artifact Registry に移行するために必要なセットアップと構成の量を最小限に抑えたい。
- 別の Google Cloud プロジェクトまたはリージョンに Artifact Registry リポジトリを設定する必要はありません。
- Artifact Registry の標準リポジトリ
すべての機能をサポートし、既存の Container Registry ホストから完全に独立している、標準モードの Artifact Registry リポジトリ。
次の場合に標準リポジトリを使用します。
- 特定のリージョンにデータを保存するコンプライアンス要件があります。
gcr.io
ドメインをサポートするリポジトリは、Container Registry ホストと同じマルチリージョン(asia
、eu
、us
)でのみ使用できます。 - Container Registry を使用しているプロジェクトとは異なるプロジェクトで Artifact Registry リポジトリを設定する必要がある。
イメージの保存方法と場所を再設計する必要がある。次に例を示します。
- Cloud Run や Google Kubernetes Engine などのランタイムを含む、他の Google Cloud リージョン リソースと同じリージョンにリポジトリを作成します。
- チームにより近いリージョンにリポジトリを設定する。たとえば、
asia
マルチリージョンではなくオーストラリア リージョンに、またはus
マルチリージョンではなく南米 リージョンにリポジトリを作成できます。 - 同じプロジェクトとロケーションに、異なる Identity and Access Management ポリシーを使用して複数の Docker リポジトリを作成します。たとえば、
us-east1
リージョンに開発用リポジトリと本番環境リポジトリを設定し、デベロッパーに異なるレベルのアクセス権を付与できます。
複数のアップストリーム標準リポジトリからダウンロードするための単一のエンドポイントとして機能する仮想リポジトリを作成します。
リモート リポジトリを使用して外部ソースのプロキシとして機能させる。
- 特定のリージョンにデータを保存するコンプライアンス要件があります。
標準リポジトリ、リモート リポジトリ、仮想リポジトリ、gcr.io
リポジトリは共存できます。たとえば、Artifact Registry に gcr.io
リポジトリを作成して、既存の Container Registry の設定を移行し、新しい作業用の標準リポジトリを作成できます。
移行ツールを使用する
次のツールを使用して、Container Registry を使用しているプロジェクトを確認し、Container Registry から Artifact Registry へのイメージのコピー、Container Registry から Artifact Registry への複数のプロジェクトの自動移行を行います。
- Container Registry の使用状況を確認する
- 自動移行ツールを使用して、Container Registry から Artifact Registry にプロジェクトを移行し、イメージをコピーし、目的の移行リポジトリ タイプを選択します。
- 自動移行ツール、gcrane、Docker、または gcloud CLI を使用して、Container Registry から Artifact Registry にイメージをコピーします。
機能の比較
次の表に、Container Registry と Artifact Registry の違いの概要を示します。
機能 | Container Registry | Artifact Registry |
---|---|---|
サポートされているファイル形式 | コンテナ イメージのみ | コンテナ イメージ、言語パッケージ、OS パッケージなど、複数のアーティファクトformats。 |
ドメイン名 | gcr.io |
pkg.dev
gcr.io リポジトリを設定している場合は、Artifact Registry で |
リポジトリ モード | 該当なし |
|
レジストリの作成 | レジストリ ホストを作成するには、最初のイメージを push します。
Container Registry は、Google Cloud プロジェクトの Cloud Storage バケットにイメージを保存します。レジストリ固有の権限の付与などのアクションは、バケットに直接適用する必要があります。 |
リポジトリの作成は、push と pull とは別のオペレーションです。これにより、リポジトリの管理とリポジトリの使用を明確に分離できます。
Artifact Registry には、Google Cloud プロジェクトで管理する Cloud Storage バケットはありません。イメージ管理アクションはリポジトリで直接実行します。 |
レジストリの場所 | Google Cloud プロジェクトで使用できるマルチリージョン レジストリのホストは 4 つのみです。 | リージョンまたはマルチリージョンに、個別に制御される複数のリポジトリを作成します。 |
アクセス制御 |
|
|
Authentication | サードパーティのクライアントがイメージを push および pull するための複数の認証方法を提供します。 | Artifact Registry は、Container Registry と同じ認証方法をサポートしています。詳細については、Docker の認証の設定をご覧ください。 |
顧客管理の暗号鍵(CMEK) | CMEK を使用して、イメージを含むストレージ バケットを暗号化します。 | CMEK を使用して個々のリポジトリを暗号化します。 |
Google Cloud コンソールの使用 | Google Cloud コンソールの [Container Registry] セクションで、Container Registry イメージを表示して管理します。 | Google Cloud コンソールの [Artifact Registry] セクションで、Artifact Registry リポジトリと Container Registry リポジトリのリストを表示します。このページから Artifact Registry リポジトリとイメージを管理します。
Container Registry リポジトリをクリックすると、Google Cloud コンソールの [Container Registry] セクションのイメージのリストに誘導されます。 |
gcloud CLI と API コマンドを使用する | gcloud container images コマンドを使用します。コマンドは、短縮されたダイジェストをサポートします。完全なダイジェスト文字列を指定しなかった場合、Container Registry は部分文字列に基づいて正しいイメージを探そうとします。
Container Registry に REST API または RPC API はありません。 |
gcloud artifacts docker コマンドを使用します。コマンドは、短縮されたダイジェストをサポートしていません。Container Registry と Artifact Registry の gcloud CLI コマンドの比較については、gcloud CLI コマンドの比較をご覧ください。 Artifact Registry には、リポジトリとアーティファクトを管理するための REST API と RPC API が用意されています。 |
Pub/Sub 通知 | gcr トピックへの変更を公開します。 |
gcr トピックへの変更を公開します。既存の Container Registry サービスと同じプロジェクトにリポジトリを作成すると、既存の Pub/Sub 構成が自動的に機能します。
詳細については、Pub/Sub 通知の設定をご覧ください。 |
監査ロギング | Container Registry は、レジストリ アクティビティの監査ログを提供しません。 | Cloud Logging を使用して、リポジトリの変更を追跡します。 |
キャッシュされた Docker Hub のイメージ | mirror.gcr.io は、すべてのユーザーによって最も頻繁にリクエストされる Docker Hub イメージを保存する pull スルー キャッシュです。
これで mirror.gcr.io が Artifact Registry でホストされるようになりました。 |
これで mirror.gcr.io が Artifact Registry でホストされるようになりました。VPC Service Controls 境界で mirror.gcr.io を使用している場合を除き、対応は必要ありません。VPC Service Controls の境界での mirror.gcr.io の使用について詳しくは、VPC Service Controls で Artifact Registry を使用するをご覧ください。 |
VPC Service Controls | サービス境界に Container Registry を追加できます。 | サービス境界に Artifact Registry を追加できます。 |
Artifact Analysis を使用したメタデータの保存と分析 | サポートされている OS のイメージのオンデマンド スキャンで、OS と言語パッケージの脆弱性をスキャンします。自動スキャンでは、OS の脆弱性情報のみが返されます。
スキャンの種類について学習します。
|
オンデマンド スキャンと自動スキャンの両方を使用して、OS や言語パッケージの脆弱性をスキャンします。
スキャンの種類について学習します。
|
イメージ ストリーミング | 使用不可 | Artifact Registry のイメージを GKE または Dataproc Serverless にストリーミングして、自動スケーリングの高速化、Pod の起動の高速化、大規模なイメージを pull する際のレイテンシの短縮を実現します。 |
Cloud Run ソースのデプロイ | 使用不可 | ソースのデプロイでは、1 つの gcloud CLI コマンドを使用して、ソースコードからコンテナ イメージをビルドし、Artifact Registry にイメージを保存して、Cloud Run にデプロイできます。 |
料金 | Container Registry の料金は、ストレージとネットワーク データ転送を含む Cloud Storage の使用量に基づいています。レジストリ ホストはマルチリージョンでのみ使用できるため、データ転送費用には Google Cloud へのイメージのデプロイが含まれます | Artifact Registry には、ストレージとネットワーク データ転送に基づく独自の料金が設定されています。 |
割り当て | Container Registry にはリクエストの上限が設定されています。Cloud Storage の割り当ても適用されます。詳細については、割り当てと上限のドキュメントをご覧ください。 | Artifact Registry にはプロジェクトごととユーザーごとの割り当てがあります。デフォルトでは、ユーザーごとの割り当てに上限はありませんが、1 人のユーザーがプロジェクト レベルの割り当てを過剰に消費しないように、ユーザーごとの上限を構成できます。 |
gcloud コマンドの比較
次の表に、gcloud CLI の Container Registry コマンドと同等の Artifact Registry コマンドの概要を示します。表内のリンクをクリックすると、コマンドのリファレンス ページが表示されます。
この表には、Container Registry に同等のコマンドが存在しない、使用可能な Artifact Registry コマンドがすべて記載されているわけではありません。すべての Artifact Registry コマンド リファレンスについては、gcloud artifacts
のドキュメントをご覧ください。
オペレーション | Container Registry | Artifact Registry |
---|---|---|
リポジトリを作成する | 該当なし | gcloud artifacts repositories create
|
リポジトリを削除する | 該当なし | gcloud artifacts repositories delete
|
イメージの一覧取得 |
gcloud container images list
|
gcloud artifacts docker images list
|
タグの一覧表示 |
gcloud container images list-tags
|
gcloud artifacts docker tags list
|
タグを追加 |
gcloud container images add-tag
|
gcloud artifacts docker tags add
|
タグを削除する |
gcloud container images untag
|
gcloud artifacts docker tags delete
|
イメージの説明を入力 |
gcloud container images describe
|
gcloud artifacts docker images list --include-tags
|