Docker ミラー速度テストと設定ジェネレーター

Docker Registry V2 で実際の pull 可否を検証し、現在のネットワーク遅延順に並べてすぐ使える設定を生成します。

0
検査数
0
そのまま使える
0
条件付き
0
使用不可
—
現在の回線で最速
—
プロトコル検査時間
テスト中…
i
プロトコル検証は 17NAS の探測ノード(米国・セントルイス)から行い、「そのミラーがイメージを返せるか」だけを判定します。遅延欄のローカルはあなたのブラウザが直接計測した値で、並び順も生成される設定もこちらに従います。地域によって制限やブロックを行うミラーもあるため、米国ノードで 429 / 403 が出ても、あなたの環境で使えないとは限りません。

自分のミラーを一時的に追加

ホスト名のみ(ポート可)。保存はされず、1 回あたり最大 3 件です。内部ネットワークのスキャンに悪用されないよう、プライベートアドレスに解決されるホスト名は拒否します。

今回の無料テストではカスタムミラーを 3 件まで追加できます。17NAS への支援は Docker ツールの継続的な保守と改善に役立ちます。

そのまま使えるミラー

まだ結果がありません。上の「テスト開始」を押してください。

これらのミラー自体は生きています。docker login が必要なもの、今まさに制限されているもの、当方の探測ノードを地域で制限しているものが含まれます。下の自動生成設定には入れませんが、あなたの回線では問題なく使える場合があります。

ホスト名が解決・接続できないか、接続はできてもマニフェストではなく Web ページを返すかのどちらかです。後者が厄介で、ブラウザでは普通に開くのに docker pull は必ず失敗します。黙って消さず、ここにそのまま残します。

設定の自動生成

/etc/docker/daemon.json



            
i
適用方法
  1. 内容を次のファイルに書き込む: /etc/docker/daemon.json
  2. Docker サービスを再起動: sudo systemctl restart docker
  3. 反映を確認: docker info | grep -i registry
i
適用方法
  1. ディレクトリを作成: sudo mkdir -p /etc/containerd/certs.d/docker.io
  2. 上記の内容をそのディレクトリ内の次の名前で保存: hosts.toml
  3. containerd を再起動: sudo systemctl restart containerd
i
1Panel / DPanel の Docker ミラー設定

パネルが「1 行に 1 つのミラーアドレス」という形式を受け付ける場合は、上の 1Panel / DPanel タブに切り替え、このテストで生成された一覧をコピーしてください。

!
「そのまま使える」と判定され、かつあなたのブラウザから到達できたミラーのみを、最大 5 件、あなたの遅延が速い順に並べています。Docker は上から順に試すため、2〜3 件入れておくほうが安定します。ログインが必要なミラーは含めていないので、docker login 後に手動で追加してください。

検査は 2 系統に分かれます。プロトコル検証は 17NAS の探測ノードで行います。まず /v2/ を要求し、401 + WWW-Authenticate: Bearer が返れば Docker 標準の手順で匿名トークンを取得、そのトークンで library/alpine:latest のマニフェストを取得し、最後に応答が本当にマニフェストか(Docker-Content-Digest ヘッダーとメディアタイプで判定)を確認します。遅延はあなたのブラウザが各 /v2/ を 3 回叩いて中央値を取ります。これが実際に体感する速度なので、並び順とおすすめはこちらに従います。

6 つのステータスの意味

  • そのまま使える:匿名で実際のマニフェストを取得できました。設定に入れるだけです。
  • ログインが必要:ミラー自体は生きていますが、先に docker login が要ります。クラウド事業者の専用ミラーはほぼこれです。
  • レート制限中:短時間に要求が多く弾かれました(HTTP 429)。一時的なので時間をおけば通ることが多いです。
  • アクセス制限:ミラーが当方の探測ノードを明確に拒否しました(HTTP 403)。学内網・社内網・地域限定のミラーによくあり、該当ネットワークからなら正常に使えることがあります。
  • レジストリではない:接続はできますが、Web ページを返す・イメージが無い・不審なリダイレクトをする、のいずれかです。HTTP ステータスコードしか見ないツールはこれを「利用可」と判定しがちで、daemon.json に入れると docker pull は必ず失敗します。
  • 接続不可:ホスト名の DNS レコードが無い、または接続・TLS ハンドシェイクに失敗します。公開ミラーは終了時に DNS ごと止めることが多いので、このグループはブックマークから削って構いません。

ログインが必要なミラーの設定

まず docker login <ミラーのホスト名> で提供元の資格情報を入力します。認証情報は ~/.docker/config.json に保存されるので、そのうえでホスト名を registry-mirrors に手動で追加してください。このファイル内の資格情報は base64 エンコードされているだけで暗号化ではありません。バックアップごと公開リポジトリに上げないよう注意してください。

!
公開ミラーは入れ替わりが激しく、今日使えても来週には終了していることがあります。この結果はあくまで現時点のものです。予備を 2〜3 件設定しておき、pull が遅い・失敗するときはここで測り直してください。なお、ローカル遅延はブラウザからの往復時間で、TLS ハンドシェイクやブラウザのセキュリティポリシーの影響を受けます。ミラー同士の比較には使えますが、docker pull の実効帯域とは別物です。

関連ツール