Docker は、2019 年 6 月 1 日に Docker Hub のレジストリ v1 API を介したプルを無効にします。 レジストリ v1 API を介した Docker Hub へのプッシュは 2015 年 11 月以降禁止されており、レジストリ v1 API を介したプルは、Docker クライアント 1.12 以下を介してのみ実行できます。 私たちの目標は、サービスの安定性と、レジストリ v2 API や、作業中のその他のユーザーとアカウント管理の改善など、Docker Hub オファリング全体で最高のエクスペリエンスを確保することです。
現時点では、Docker Hub 上の v1 レジストリ API のコンシューマーの数が妥当なしきい値を下回り、サポートされなくなった Docker クライアント上にあることがわかりました。 レジストリ v2 API に移行する方法については、以下を参照してください。
非推奨のタイムライン
2019 年 3 月 21 日: ブログ投稿と現在のタイムラインで非推奨を発表します。
2019年4月月12日午前9:00 PDT: レジストリ v1 API を介した Docker Hub からのプルは、5 分間一時的にブロックされます。 レジストリ v1 API を介したプルは、5 分のブロック後に復元されます。
2019年4月月15日午前9:00 PDT: レジストリ v1 API を介した Docker Hub からのプルは、5 分間一時的にブロックされます。 レジストリ v1 API を介したプルは、5 分のブロック後に復元されます。
2019年4月月23日午前9:00(太平洋夏時間): レジストリ v1 API を介した Docker Hub からのプルは、1 時間一時的にブロックされます。 レジストリ v1 API を介したプルは、1 時間のブロック後に復元されます。
2019年4月月30日午前9:00(太平洋夏時間): レジストリ v1 API を介した Docker Hub からのプルは、2 時間一時的にブロックされます。 レジストリ v1 API を介したプルは、2 時間のブロック後に復元されます。
2019年5月7日午前9:00(太平洋夏時間): レジストリ v1 API を介した Docker Hub からのプルは、4 時間一時的にブロックされます。 レジストリ v1 API を介したプルは、4 時間のブロック後に復元されます。
2019年5月15日午前9:00(太平洋夏時間): レジストリ v1 API を介した Docker Hub からのプルは、24 時間一時的にブロックされます。 レジストリ v1 API を介したプルは、24 時間のブロック後に復元されます。
2019 年 6 月 1 日: Docker Hub のレジストリ v1 API を介したプルは完全にオフになります。
Docker Hub での v2 レジストリ API の使用
Docker Hub 上の v1 レジストリ API の既存のユーザーは、次の手順で v2 レジストリ API に移行できます
- Docker エンジンを 17.03 以降に更新して、v2 レジストリ API と互換性を持たせます。 最新バージョンのエンジンは、Docker Hub (コミュニティ そして エンタープライズ).
- v1 形式のコンテンツが Docker Hub にある場合は、新しい Docker クライアント (1.12 より新しい) を使用してイメージを再構築し、Docker Hub にプッシュすることで、v2 形式を使用するように移動できます。
Docker Hubでのレジストリv1 APIの使用と修復手順について追加の質問がある場合は、メールでお知らせください [メール保護]. 私たちはあなたから話を聞き、あなたが遭遇するかもしれない問題を解決するために協力したいと思います。
理由に関するいくつかの洞察
レジストリ v1 API を介したプッシュは 4 年近くブロックされているため、1 日あたりのプルの現在の使用量は次のようになります。
現状であるレジストリv2 APIを介して着信するトラフィックと比較すると、これは総トラフィックの約.15%を占めました。
さらに内訳を見ると、受信していたトラフィックの約80%が404になり、15%だけが2xxトランザクションの成功につながったことがわかりました。 トランザクションは少数のIPセットから発生していましたが、これも、同じ期間にv2 APIへのトランザクションを担当するIPの数の.1%未満を占めていました。
多くのお客様が Hub の稼働状態を維持し、受信要求を処理することに依存していることを認識しているため、疑わしい使用法にもかかわらず API を非推奨にする場合のベスト プラクティスの一環として、5 分間のブラウンアウトをいくつか導入し、ユーザーをこのブログ投稿に誘導する明確なエラー メッセージを表示して、今後の変更を認識します。
最初の 5 分間のブラウンアウトに加えて、数時間のブラウンアウトを導入し、ほとんどのユーザーが修復できると確信しています – 私たちの仮説は、ほとんどの場合、実行されるアクションは、お客様がすでに v2 レジストリ API に移行している可能性が高いため、v1 API 呼び出しを行うインスタンスをシャットダウンすることです。