あなたのように 単に 個人的 考慮 、Docker Hub は今週ポリシーを劇的に変更し、ほぼすべての近隣住民の写真撮影に 30 日間の立ち退きを求めることに成功しました。
彼らは現在 謝罪 情報について「説明」し、骨の折れるエッジオフについて思い出すのに役立ちますが、この無音は大きな開示を強調しています. 幸いなことに、答えがあります.
説明したように、これは壊滅的でした: ツール、チュートリアル、デモ、ウェブログの投稿でデフォルトのホストとして Docker Hub が使用されています。 、スクリプト、デプロイメント定義、CI ビルド、さらには約 1 年間、これらすべての参照が壊れようとしていました。 Docker エコシステム。 彼らの更新されたポリシーでは、既存の写真を監督することはできなくなったようですが、支払いをしないプロジェクトは 最近の 写真を盗むことに成功したため、ずんぐりしたチームのサブスクリプションを奪うことを除いて、コミュニティに展開していた名前空間を手放すことに成功しました。 多くの はもはや製造されないので .
ここに興味深い開示があります。 普及している写真がもはや削除されるべきではないとしても、Docker Hub の mosey の道は確かです: 彼らは、Docker 近隣のコアをこれ以上ホストしたくありません。余分な景品、支払い、または急いで他の場所(もはや不合理ではありませんが、それでも、さまざまな10年のずんぐりした10年後のラグプルのようなものです).任意の容量で無料のイメージ公開を Docker Hub に依存している場合は、対象を個人的に指定します。 彼らはもはやあなたに解決しません。 明らかに彼らの聴衆ではなくなるのは良いことかもしれませんし、原則はさらに厳しくなるでしょう。 これはもはや不合理ではありません-または、もはやそれは彼らのキャリアであり、ウェブホスティングはもはや無料ではありません. Docker Hub の有料購入者ではなくなったように思われる場合、または Docker Hub を離れる時期ではない場合。
セルフWebホスティングレジストリはもはや無料ではなく、思ったよりも余分な作業ではありません。または、インフラストラクチャの正しい部分ではなく、監視からセキュリティ更新プログラムのロードとディスクへの迅速な適用まで、全体的な義務が発生します。・住居管理。 誰も (小さなプロジェクトがこれらに対処すると主張するのではなく) この仕事を望んでいるわけではありません. 1にすぐに多くのことを感じます.6か月後に完全に同一の開示を行うことは一見正しいように思われます.
マウントされたレジストリ URL を格納する必要がありますが、格納環境で完全に監視する必要がありますが、永遠に自己ホストする必要はありません。特定のレジストリにコミットしますか、それとも総帯域幅とストレージの支払いに対処しますか?
docker pull docker.my-org.in stance.com/org/my-image) 他の場所でホストされている任意のレジストリを直接作成するためにスペースに無音である場合、または自分自身をホストするように構成します。 Explain を 1 つずつ保存、ロード、または提供することをやめてください。 現時点では、公共の写真用にこれを無料で喜んで作成するさまざまなレジストリの形式が最小限に抑えられている可能性があります。サイト web サイトの訪問者。 今後使用するバッキング レジストリを変更するためのスペースにいてください。 .基本的にはかなり簡単だと言ったら?
これがどのように うまく機能するか について話しましょう。次に、基本的に docker pull について掘り下げます。する es、そして集合的にフリートソリューションを構築します(このストレートを製造する方法を理解する必要がありますが、今こそ結論にスキップする).
Docker のレジストリ API は、やや単純な HTTP で実行され、HTTP API は、
従来の「コンテナ環境下のホスト」ソリューションは、DNS レベルで CNAME を直接作成することです。 このソート環境は、別の場所の環境に対して機能し、エイリアスを正常に定義する、環境の下の DNS ファイルを上に並べます。 消費者が参加しようとすると、your-registry.instance.com を検索できる場合があります。 、バッキング レジストリを参照するファイルを取得します (
registry.hub.docker.com
、仮定しましょう)、そして、すべてのリクエストはあちらに発送されていることがわかります.
これがここでうまくいかなかった場合、実質的であろう! Web ホスティングは必要ありません。DNS レベルで適切にアドレス指定してください。
残念ながら、これには、目的のサーバーが Host ヘッダー、適切なリクエストとして処理する必要があることは明らかですキャリア。 Docker Hub の場合、最小限のことはもはやないようです (もはや無料ではないことは間違いありません。多くのさまざまな企業や製品に対応していますが、これは有料のアドオンとして非常にうまく提供される可能性があります)。 有害なホスト名で Docker Hub に送信されたリクエストは単に失敗します:
OK ..。 > )カール -I -H「ホスト: instance.com」 https://registry.hub.docker.com HTTP/1.0
これは多くのさまざまなレジストリにも当てはまると思うので、DNS レベルでのリダイレクト権はありません.
次の構想: HTTPレベルでリダイレクトおよび/またはプロキシすることでこれを製造していますか? リバース プロキシの全体的なエコシステムと共に、この内部 HTTP 自体を製造するための、ほぼ確立されたツールとアプローチが存在する可能性があります。 残念ながら、API の顧客がリダイレクトに対処するかどうかはもはや保証されておらず、さまざまなコンポーネントを操作せずにプロキシすることは重要です.
これが機能するかどうかを判断するために、Docker の Web サイトの Web サイトの訪問者をすぐに掘り下げて作成したいと考えています. まず、Docker プルが内部で基本的に何をしているのかを思い出してみましょう. 先に進むたびに docker pull、または Docker を使用してその他のものを作成する (イメージのビルドなど) ) 途中で画像のプルをトリガーします。 この Web サイトの Web サイトの訪問者を掘り下げるには、HTTP デバッグ マシン ( に対応) を使用するのが最善の選択です) HTTP ツールキット あなたがかなり熱心に見える場合を除き、それをスキップする必要があります-私はあなたが望む結果を与えるために骨の折れる仕事を終えました. 予備の /v2/ からのシーク情報API スポットをテストします ( 明示的なマニフェストに対する 2 つの GET リクエスト。 200 を受信: 明示的な BLOB ハッシュに対する並列リクエストの住居。 それらのすべてが もはや ありません 説明を返します - 説明への 307 リダイレクトを返します! Docker Hub の場合、Cloudflare が支援する CDN への abet リダイレクトに近づいているように見えます: クライアントがレイヤー全体とイメージ構成をプルするとすぐに、それらは、Docker イメージとして集合的に静かになります。 ここにすべて非常に注意を引くものがあります。コミュニティ レベルで何が起こっているかについての正しい考えが得られたので、これをテストして、私が「レジストリ ファサード」と呼んでいるものを製造することができます ra proxy). 非常に苦労せずに、上記の Web サイトの Web サイトの訪問者の中で、私たちはすでに住居と取引にリダイレクトがあることを確認できます! すべての Docker ユーザー が リダイレクトを強化する方法 /blobs/ リクエスト (そうしないと、Docker Hub は使用できなくなります) すべてのリクエストに対してそれらを強化するように見えます. では、それを条件に、同じものをすぐに自分たちで製造したらどうなるか、すべてから abet 307 HTTP リダイレクトにアプローチするルールを環境によって ビンゴです。 これで何とかうまくいきました! すべてのステップでさらに 307 リダイレクト レスポンスを追加することで、かなりのオーバーヘッドを追加しています (赤いアイコンからのすべてのシーク情報は、注入されたリダイレクトです)。私がテストしたすべてのシナリオ。 確かに最初から発見するのはまずまずです(そして、これはすべて私たちの支援下にある可能性があるため、将来的にこのソリューションを強化するために反復することができます. HTTP Toolkit のフリート ハッキー リライト ルールを使用してこれをテストしました。 キャディ - 本質的に完全にベースの Docker コンテナー 私の場合は、Bunny CDN は、おそらくこれを簡単に製造できる優れた原理システムを所有しています: 製造において、製造を試みる際に個人的に賢明にすべきことの 1 つは、組織の写真を適切に処理し、全体的な原因として使用されないようにすることです。すべての写真のファサードまたは同じもので、環境へのすべての要求が繰り返しあなたの写真を発見することを知っています。 上記の Caddy に本質的に完全に基づいたほとんどのコンテナーは、環境 一見大丈夫そうです。 私の場合、これを docker.httptoolkit.tech としてデプロイしました、そのホスト名から Docker の写真を取得する必要がありますが、現時点では Docker Hub で無音でホストされていますが、アドレスは次のようになります: 将来的には、写真を他の場所に移す可能性がありますが、この画像アドレスをそのまま使用することに成功するでしょう。私がその環境に手を貸す限り、私が対処するレジストリに裏打ちされて、それが繰り返し機能するという急いで賭けの中で. もしあなたがこのテーマに苦労している冒険者のように見えるなら、それはあなたが熟考しなければならないものです Docker Hub からの移行を開始する前にフリート ラッパーとして ゴージャスになりました。また、すべてのドクターとスクリプトの転送を開始する必要があります。 さらに重要なのは、どちらのデバイスでも、これにより、移行先のレジストリに関係なく、将来の切り替えにまったく影響がないことが保証されます。最近のさまざまなレジストリも必然的に壊れる/すべてのデータを失う/最も生産的な30日間のシークで彼らの原則を変更する. 基本にすべての HTTP ツールキットの既存の写真のずんぐりした移行を行っている同盟国) それでも、同じ混乱の中で他の人を助けることを望んでいます. 一見個人的なフィードバックが必要な場合は、docker pull nginx をたまたま進めているとこうなります:
ここの医者)。 Docker Hub では、これは通常 401 を返し、ヘッダーはクライアントを認証にリダイレクトします
auth.docker.io からの認証シーク情報、JWT を返します。
/v2/library/nginx/manifests/newest への HEAD シーク情報)
docker-explain-digest で応答を返します sha256 ハッシュを含むヘッダー:
に熱心に取り組んでください。 マストドン、 ツイッター、 また すぐにメッセージを送ってください.
/v2/library/nginx/blobs/sha256:$HASH
manufacturing.cloudflare.docker.com ) 基本的に画像構成とレイヤーの説明を取得します.
REGISTRY_ORG
httptoolkit にその場合、最も生産的な写真が利用できる可能性があり、他のすべての部分で 403 が検出されます。
/v2/$YOUR_ORG/
がリダイレクトされ、明示的な /v2/ エンドポイント - 後者のエンドポイント認証がなければ、単に機能しなくなる可能性があります.> docker docker.httptoolkit.tech/httptoolkit/docker-socks-tunnel をプルします。
𝚆𝚊𝚝𝚌𝚑 𝙽𝙾𝚆 📺