Eine Registry-Kopie durch einen Proxy mit Skopeo
Konfigurieren Sie den Skopeo-Prozess für ein Quell-Registry über einen Proxy und ein direktes internes Ziel, einschließlich Multi-Plattform-Images.
Ein Rechner, der ein externes Registry über einen Proxy erreicht, kann mit Skopeo ein Image in ein internes Registry kopieren. Konfigurieren Sie den Prozess, der die Kopie ausführt:
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
Die Registry-Namen und die Image-Referenz sind Beispiele. Die Quelle läuft über den Proxy; das interne Registry wird durch den Bypass-Eintrag abgeglichen. Für eine zulässige Kopie aus einer öffentlichen Quelle ohne konfigurierte Proxy-Anmeldedaten kann die HTTP-Proxy-Liste Kandidaten für HTTP-Endpunkte liefern, während dieser interne Bypass bestehen bleibt. Passen Sie den Eintrag an den Zielhostnamen an, den der Befehl tatsächlich verwendet.
docker:// ist der Image-Transportname für Registry-Referenzen. Er bedeutet nicht, dass die Kopie an einen lokalen Docker-Daemon delegiert wird. Der Registry-HTTP-Transport von Skopeo nutzt die Proxy-Erkennung aus der Umgebung, sofern eine einbettende Anwendung nicht ausdrücklich eine andere Proxy-URL bereitstellt.
--all ist wichtig, wenn die Quellreferenz einen Multi-Plattform-Image-Index oder eine Manifestliste auswählt: Es wird verlangt, alle referenzierten Images zu kopieren. Ohne diese Wahl kann eine Kopie ein Image für die aktuelle Plattform auswählen, statt die vollständige Multi-Plattform-Referenz zu reproduzieren.
Nach der Kopie können nachgelagerte Rechner die Image-Referenz des internen Registrys verwenden. Ob sie sie ziehen können, hängt von ihrer Route zu diesem Registry ab; sie erben nicht die Umgebung des Prozesses, der die Kopie ausgeführt hat.