Container Registry に関連するサポート終了をお知らせします。Docker の利用非推奨のお知らせとchangelogもご覧ください。
Docker Registry v1 API とバージョン 1.6 より前の Docker クライアント
2016 年 12 月 14 日に Google は、Docker v1.13 がリリースされる 2017 年 2 月 28 日をもって、Docker Engine による v1 プロトコルのサポートが終了することを発表しました。
これに伴い、Container Registry はバージョン 1.6 未満の Docker クライアントのサポートを終了しました。2017 年 2 月 28 日以降、バージョン 1.6 より前の Docker クライアントは Container Registry API と通信できなくなり、Container Registry に格納されている v1 プロトコルのコンテナ イメージはサービスを提供できなくなります。
この変更がお使いのイメージに影響するかどうかを確認するには、次の手順を行います。
次のコマンドを実行して、使用している Docker クライアントのバージョンを確認します。
gcloud docker -- --version
クライアントのバージョンがバージョン 1.6 未満である場合は、Docker クライアントを更新する必要があります。次に、イメージを Docker Registry v2 プロトコルに更新する必要があります。
影響を受ける v1 イメージを pull します。
gcloud docker -- pull gcr.io/[PROJECT-ID]/[IMAGE]
イメージを再度 push します。
gcloud docker -- push gcr.io/[PROJECT-ID]/[IMAGE]
Docker Registry の v1 および v2 プロトコルの詳細については、Container のイメージ形式をご覧ください。
標準以外の Container Registry バケット
2017 年 2 月 28 日より b.gcr.io
や bucket.gcr.io
などの「お客様独自のバケット」レジストリの使用はサポート対象外となります。Container Registry では、それらのバケットでホストされているコンテナ イメージへのサービスが提供されなくなります。
イメージの使用を継続するには、標準の Container Registry ロケーション(gcr.io
、us.gcr.io
、asia.gcr.io
、eu.gcr.io
など)にイメージを移動する必要があります。
コンテナ イメージを標準以外のバケットから標準バケットへ移行するには、次の手順を実行します。
標準以外のバケットからイメージを pull します。
gcloud docker -- pull b.gcr.io/[BUCKET-NAME]/[IMAGE]:[TAG]
イメージに標準レジストリ ロケーションの名前を指定してタグを再設定します。
gcloud docker -- tag b.gcr.io/[BUCKET-NAME]/[IMAGE]:[TAG] [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
ターゲット プロジェクト ID を使用して、イメージを Container Registry に(Docker クライアント バージョン 1.6 以降を使用して)再び push します。
gcloud docker -- push [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
コンテナ イメージ メタデータのストレージの変更
2017 年 2 月 28 日付けで、Container Registry がコンテナ イメージのメタデータ ファイルを格納する場所が変更されました。イメージ メタデータとは、イメージを構成するレイヤファイルを(ダイジェストで)識別するイメージ名、イメージタグ、イメージ マニフェストなどの情報を指します。
Cloud Storage バケット内のメタデータ ファイルへの直接アクセスや直接操作(変更履歴や、削除を目的としたオブジェクトのライフサイクル管理など)を行う場合、この変更による影響を受ける可能性があります。
以前は、イメージを Container Registry に push すると、Container Registry API により、push されたイメージのメタデータとレイヤファイルがプロジェクトの Cloud Storage バケットに格納されていました。2017 年 2 月 28 日からは、パフォーマンスの向上と機能強化のために、Container Registry は高パフォーマンス バックエンド データベースにイメージ メタデータを格納するようになっています。イメージのレイヤファイルは引き続き Cloud Storage に格納されます。
Container Registry サービス アカウントは、[PROJECT-NUMBER]@containerregistry.iam.gserviceaccount.com
のような名前でプロジェクトに自動的に追加されていました。このサービス アカウントにより、新しい Container Registry API が有効になり、移行が管理されていました。このサービス アカウントを削除またはダウングレードしたり、新しい Container Registry API を無効にしたりしないでください。
gcloud docker コマンドとバージョン 18.03 以上の Docker クライアント
2018 年 4 月 3 日現在、gcloud docker
はバージョン 18.03 以降の Docker クライアントに対してはサポートされていません。
クライアントのバージョンが 18.03 以降の Container Registry に対するリクエストを認証するには、gcloud
を Docker 認証ヘルパーとして使用します。これを行うには、次のコマンドを実行します。
gcloud auth configure-docker
または、その他の高度な認証方法のいずれかを使用します。