Docker-Registry-Mirrors werden nicht für FQDN-Images verwendet.

Docker-Registry-Mirrors werden nicht für FQDN-Images verwendet.

Ich habe einen Docker-Server hinter einer Firewall, daher kann ich Bilder nicht direkt aus einem anderen Register als den internen Servern abrufen.

Ich habe konfiguriertzweiRegistry Mirrors ( registry-1.docker.iound mcr.microsoft.com), nachDokumente.

Meins daemon.jsonsieht so aus:

{
  "registry-mirrors": [
          "https://registry_1_docker_io.example.com",
          "https://mcr_microsoft_com.example.com"
  ] 
}

Ich kann Bilder erfolgreich vom Docker-Hub abrufen, indem ich beispielsweise Folgendes ausführe:

$ docker pull nginx:1
1: Pulling from library/nginx
....
Status: Downloaded newer image for nginx:1

Mein Problem ist, dassIch kann keine Bilder aus der Microsoft-Registrierung abrufen:

# docker pull mcr.microsoft.com/mssql/server:2017-latest
Error response from daemon: Get "https://mcr.microsoft.com/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

Der Docker versucht, eine direkte Verbindung zu mcrmeinem Spiegel herzustellen und ignoriert ihn. Wenn ich einen kurzen Image-Namen ( mssql/server:2017-latestanstelle von mcr.microsoft.com/mssql/server:2017-latest) verwende, funktioniert es, aber es kann sein, dass das Image vom Docker-Hub statt von Microsofts MCR abgerufen wird, wenn der Tag auf beiden gleich ist.

Wenn ich mir die Protokolle ansehe, probiert Docker außerdem der Reihe nach alle Proxys für das Image aus. Es kann also vorkommen, dass das Image aus dem falschen Repository abgerufen wird.

Gibt es eine Möglichkeit, einen Spiegel als Spiegel für ein bestimmtes Register zu markieren?

Antwort1

Gibt es eine Möglichkeit, einen Spiegel als Spiegel für ein bestimmtes Register zu markieren?

Nein, das ist eine Einschränkung der Docker-Engine und registry-mirrorsgilt nur für Docker Hub. Sie können folgenAusgabe 18818für mehr Details.

Dies kann sich ändern, wenn Docker in naher Zukunft die Image-Verarbeitung von Docker auf Containerd auslagert, da Containerd eine andere Konfiguration für die Verarbeitung von Spiegeln hat.

verwandte Informationen