Skopeo を使ったプロキシ経由のレジストリコピー
プロキシ経由のソースレジストリと直接の内部宛先のために Skopeo の処理を設定します。マルチプラットフォームイメージも含みます。
プロキシ経由で外部レジストリに到達できるマシンは、Skopeo でイメージを内部レジストリへコピーできます。コピーを実行する処理を設定します。
export HTTP_PROXY=http://proxy.example.net:8080
export HTTPS_PROXY=http://proxy.example.net:8080
export NO_PROXY=registry.internal.example
skopeo copy --all \
docker://registry.public.example/team/image:stable \
docker://registry.internal.example/team/image:stable
レジストリ名とイメージ参照は例です。ソースはプロキシを通り、内部レジストリはバイパス項目で照合されます。プロキシ資格情報を設定しない許可された公開ソースからのコピーでは、内部バイパスを維持したまま HTTP プロキシ一覧 から候補の HTTP エンドポイントを入手できます。その項目は、コマンドが実際に使う宛先ホスト名に合わせて調整してください。
docker:// はレジストリ参照のイメージトランスポート名です。コピーがローカルの Docker デーモンに委任されるという意味ではありません。Skopeo のレジストリ HTTP トランスポートは、組み込みアプリケーションが別のプロキシ URL を明示しない限り、環境からのプロキシ検出を使います。
--all は、ソース参照がマルチプラットフォームのイメージインデックスやマニフェストリストを選ぶときに重要です。参照されるすべてのイメージのコピーを要求します。この指定がない場合、コピーは完全なマルチプラットフォーム参照を再現せず、現在のプラットフォーム向けのイメージを選ぶことがあります。
コピー後、下流のマシンは内部レジストリのイメージ参照を使えます。それを取得できるかは、そのレジストリへの経路によります。コピーを実行した処理の環境を引き継ぐわけではありません。