Docker Hub レジストリでのベータ IPv6 のサポート

Docker ではコミュニティがすべてなので、 パブリック ロードマップで IPv6 に対する Docker Hub のサポートについての皆さんの興奮に耳を傾け、Docker Hub レジストリにベータ版の IPv6 サポートを導入できることを嬉しく思います。 つまり、IPv6 のみのネットワークを使用している場合は、NAT64 ゲートウェイを使用せずにレジストリを直接使用することをオプトインできるようになりました。

1980年代から使用されているインターネットプロトコルバージョン4(IPv4)は、グローバルに一意のアドレス空間に対する世界的な需要の高まりに対応できなくなり、このプールは最終的に使い果たされます。 IPv6はIPv4に代わるものとして作成され、新しいインターネットプロトコル標準になることが期待されています。 この動きにより、Docker Hubへのアクセスが増えるだけでなく、世界がIPv6に移行してもHubに簡単にアクセスできるようになります。

無題
グーグル ユーザーのIPv6採用

Docker は、IPv6 をサポートする数少ないコンテナー レジストリの 1 つになります。 この更新により、より多くのコミュニティが世界で最も人気のあるコンテナレジストリを使用できるようになると同時に、Docker Hubがインターネットの次の段階でユーザーをサポートするように位置付けられます。

これはあなたにとってどういう意味ですか?

IPv4 ユーザー: ハブへのアクセスは変更されません

デュアルスタック ユーザー: IPv4 または IPv6 エンドポイントから選択できます

  • デュアルスタック ユーザーは、ベータ版で新しい IPv6 専用エンドポイントを使用できるようになります。 将来的には、プライマリ エンドポイントでも IPv6 がサポートされる予定です。

IPv6 のみのユーザー: 新しい IPv6 のみのドメインにアクセスできます

  • IPv6 のみのユーザーは、NAT64 ゲートウェイを必要とせずにベータ IPv6 エンドポイントを使用できるようになります。 🎉

ベータ版の IPv6 専用エンドポイントの使用方法

IPv6 をサポートするネットワークを使用している場合は、IPv6 専用エンドポイント registry.ipv6.docker.comの使用を開始できます。 この新しいエンドポイントにログインするには、次のコマンドを実行するだけです (通常の Docker ハブ資格情報を使用)。

docker login registry.ipv6.docker.com

ログインしたら、 プッシュ/プルするイメージに IPv6 専用エンドポイントを追加します。 たとえば、以下を実行する代わりに 、公式のubuntuイメージを プルする場合:

docker pull ubuntu:latest

以下を実行します。

docker pull registry.ipv6.docker.com/library/ubuntu:latest

注: library 公式画像にのみ使用され、該当する場合はこれを名前空間に置き換えます。 たとえば、ド ッカー/ドッカーファイルの プルは次のようになります。

docker pull registry.ipv6.docker.com/docker/dockerfile:latest

このエンドポイントは、Docker CLI を使用した Docker Hub レジストリのプッシュ/プルでのみサポートされており、Docker Desktop はサポートされていません。 Docker Hub の Web サイトやその他のシステムでは、ここで学んだことに基づいて、将来的に IPv6 の更新が行われる予定です。

この新しいエンドポイントはベータ版であり、 機能や稼働時間の保証はなく、将来削除されることに注意してください。 このエンドポイントは、テスト以外には使用しないでください。

実装

Docker Hubなどのトラフィックの多いネットワークでネットワークインフラストラクチャを正確かつ自動化された方法で更新するには、精度、繊細さ、および厳格なテストが必要です。 IPv6をサポートするために、アマゾンウェブサービス(AWS)ネットワークリソースとルーティングスタック全体で多数の変更が行われました。 関連するプロセスのアイデアを与えるために、ここにいくつかの注目すべきハイライトがあります:

レート制限

不正使用を防ぎ、 Docker Hub のレート制限を適用するために、ユーザーの IP アドレスに基づいてリクエストを制限しています。 以前は、完全な 32 ビット IPv4 アドレスに基づいてアドレスを制限していました。 この一貫性を保つために、完全な IPv4 アドレスと IPv6 アドレスの最初の 64 ビットに基づいて制限するようになりました。

また、許可リストシステムを更新し、大規模な組織のお客様やクラウドパートナーがHubダウンロードに無制限にアクセスできるようにしました。 同様に、規制ブロックリスト システムが更新され、IPv6 アドレスが含まれるようになりました。

負荷分散

IPv6 接続の場合、すべての AAAA (IPv6) トラフィックを処理する新しいネットワーク ロード バランサー (NLB) がプロビジョニングされました。 これらにより、パフォーマンスとスケーラビリティが向上します。

同様に、アプリケーションロードバランサーの構成は、IPv6アドレスを理解し、それらをバックエンドアプリケーションに適切に渡し、それらに基づいてログとメトリックを正しく作成するように更新されました。

ソフトウェアの互換性

Docker Hubは毎日数十億のリクエストを受け取り、これらはすべてログに記録され、アクセスコンプライアンス、セキュリティを確保し、より多くのデバッグ機能を持つためのツールを提供します。 このため、ツールと構成では、ログが IPv4 と IPv6 の両方と一致していることを確認するために更新する必要がありました。

ログ記録に加えて、一部のアプリケーションでは、Dualstack エンドポイント (特に、BLOB ストレージへの IPv6 アクセスを提供するようになったディストリビューション サービス) をサポートするための更新が必要でした。 レジストリ ミドルウェアと認証サービスにコード変更が加えられ、レジストリのプッシュ/プル フロー全体で IPv6 要求を処理できるようになりました。

今後の展開

より多くのユーザー(特にIPv6のみのネットワーク)がDocker Hubへのアクセス性が向上することを嬉しく思います。また、インターネットと業界をサポートし、この新しいIPスペースに足を踏み入れることを嬉しく思います。

このベータリリースに関するフィードバックがある場合は、こちらからお知らせください。 https://github.com/docker/hub-feedback/issues/2165

フィードバック

「DockerハブレジストリでのベータIPv0サポート」に関する6つの考え