Container Registry は非推奨になりました。2025 年 3 月 18 日をもって、Container Registry は廃止され、Container Registry へのイメージの書き込みができなくなります。
Artifact Registry でホストされている gcr.io
URL(gcr.io
URL を含む Google 所有のイメージなど)は、Container Registry のシャットダウンの影響を受けません。
Container Registry のサポート終了と Artifact 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 と Google Cloud Serverless for Apache Spark にストリーミングする。
- ソースから Cloud Run にデプロイする。
- リポジトリのアクティビティについての監査ログ記録。
- 顧客管理の暗号鍵(CMEK)を使用した暗号化やロケーションの制約などの組織のポリシーの適用。
- コンテナの OS と言語パッケージの脆弱性のスキャン。
- 1 つのホストの背後にある複数のリポジトリを集約する仮想リポジトリ。
- Docker Hub や Maven Central などのアップストリーム ソースのアーティファクトをキャッシュに保存するリモート リポジトリ。
これらの機能の詳細については、機能の比較をご覧ください。
Google によって維持されている既存の Container Registry イメージ
以前に Container Registry でホストされていた Google 所有のイメージのほとんどは、現在 Artifact Registry の gcr.io
リポジトリでホストされています。これらのイメージを pull するために URL を変更する必要はありません。たとえば、Cloud Build 公式ビルダー イメージは引き続き使用できます。
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 の
pkg.dev
リポジトリ すべての機能をサポートし、既存の Container Registry ホストから完全に独立した Artifact Registry の
pkg.dev
リポジトリ。pkg.dev
リポジトリは、次の場合に使用します。- 特定のリージョンにデータを保存するコンプライアンス要件があります。
gcr.io
ドメインをサポートするリポジトリは、Container Registry ホストと同じマルチリージョン(asia
、eu
、us
)でのみ使用できます。 - Container Registry を使用しているプロジェクトとは異なるプロジェクトで Artifact Registry リポジトリを設定する必要がある。
イメージの保存方法と場所を再設計する必要がある。次に例を示します。
- 他の Google Cloudリージョン リソース(Cloud Run や Google Kubernetes Engine などのランタイムなど)と同じリージョンにリポジトリを作成します。
- チームにより近いリージョンにリポジトリを設定する。たとえば、
asia
マルチリージョンではなくオーストラリアのリージョンにリポジトリを作成したり、us
マルチリージョンではなく南米のリージョンにリポジトリを作成したりできます。 - 同じプロジェクトとロケーションに、異なる Identity and Access Management ポリシーを使用して複数の Docker リポジトリを作成します。たとえば、
us-east1
リージョンに開発リポジトリと本番環境リポジトリを設定し、デベロッパーに異なるレベルのアクセス権を付与できます。
複数のアップストリーム
pkg.dev
標準モード リポジトリからのダウンロード用の単一のエンドポイントとして機能する仮想リポジトリを作成する。リモート リポジトリを外部ソースのプロキシとして使用する。
- 特定のリージョンにデータを保存するコンプライアンス要件があります。
標準リポジトリ、リモート リポジトリ、仮想リポジトリ pkg.dev
と gcr.io
は共存できます。たとえば、Artifact Registry に gcr.io
リポジトリを作成して、既存の Container Registry の設定を移行し、新しい作業用に pkg.dev
リポジトリを作成できます。
移行ツールを使用する
次のツールを使用して、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 パッケージなど、複数のアーティファクト形式。 |
ドメイン名 | 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 または Google Cloud Apache Spark 用 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
|