Im Cache gespeicherte Docker Hub-Images abrufen

Container Registry speichert öffentliche Docker Hub-Images, auf die häufig zugegriffen wird, auf mirror.gcr.io. Sie können den Docker-Daemon so konfigurieren, dass ein im Cache gespeichertes öffentliches Image verwendet wird, wenn eines verfügbar ist, oder das Image aus Docker Hub abrufen, wenn keine im Cache gespeicherte Kopie verfügbar ist.

Google Cloud-Dienste wie Cloud Build und Google Kubernetes Engine suchen automatisch nach im Cache gespeicherten Images, bevor sie versuchten, ein Image aus Docker Hub abrufen.

Im Cache gespeicherte Bilder unter mirror.gcr.io sind:

  • Sie sind in einem von Google verwalteten Repository gespeichert.
  • Sie sind stärker vor Docker Hub-Ausfällen isoliert.
  • Sie lassen sich leicht in das Google Cloud-System integrieren.
  • Wird ständig mit Docker Hub synchronisiert.

Docker-Daemon konfigurieren

So konfigurieren Sie Ihren Docker-Daemon zum Abrufen von Images aus dem Container Registry-Cache:

CLI

  1. So konfigurieren Sie den Daemon:

    • Damit der Docker-Daemon beim Start automatisch konfiguriert wird, legen Sie in /etc/docker/daemon.json folgenden Wert fest:

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • Übergeben Sie beim Starten des Daemons den Hostnamen von Container Registry:

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • Fügen Sie der Datei /etc/default/docker die folgende Zeile hinzu:

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
      
  2. Starten Sie den Docker-Daemon neu:

    • Führen Sie unter Linux einen der folgenden Befehle aus:

      sudo service docker restart
      

      oder

      sudo service docker stop && sudo service docker start
      
    • Führen Sie unter macOS oder Windows den folgenden Befehl aus:

      docker-machine restart
      

Docker-UI

  1. Öffnen Sie das Menü Einstellungen von Docker.
  2. Klicken Sie auf Daemon.
  3. Klicken Sie auf Erweitert. Geben Sie im JSON-Feld einen registry-mirrors-Schlüssel mit dem Wert https://mirror.gcr.io ein:

    {
      "registry-mirrors" : [
        "https://mirror.gcr.io"
      ]
    }
    
  4. Klicken Sie auf Anwenden und neu starten.

Führen Sie folgenden Befehl aus, um zu prüfen, ob der Cache richtig konfiguriert ist:

docker system info

Die Ausgabe sollte Registry Mirrors enthalten und in etwa so aussehen:

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 2
Server Version: 17.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
...
Registry Mirrors:
 https://mirror.gcr.io

Im Cache gespeicherte Images abrufen

Container Registry fügt dem Cache häufig angeforderte Images hinzu, damit diese für zukünftige Anfragen zur Verfügung stehen. Außerdem werden regelmäßig Images entfernt, die nicht mehr angefordert werden.

Nachdem Sie den Docker-Daemon für die Verwendung des Container Registry-Cache konfiguriert haben, führt Docker die folgenden Schritte aus, wenn Sie ein öffentliches Docker Hub-Image mit einem docker pull-Befehl abrufen:

  1. Der Docker-Daemon überprüft den Container Registry-Cache und ruft die Images ab, sofern vorhanden. Wenn Ihre Daemon-Konfiguration andere Docker-Spiegel enthält, prüft der Daemon jeden, um im Cache gespeicherte Kopien des Images zu erstellen.
  2. Wenn das Image immer noch nicht gefunden wird, ruft der Docker-Daemon das Image aus dem kanonischen Repository auf Docker Hub ab.

Das Abrufen von im Cache gespeicherten Images wird nicht auf die Ratenbegrenzungen für Docker Hub angerechnet. Es gibt jedoch keine Garantie dafür, dass ein bestimmtes Image für einen längeren Zeitraum im Cache gespeichert wird. Rufen Sie nur im Cache gespeicherte Images auf mirror.gcr.io ab, indem Sie den Docker-Daemon konfigurieren. Eine Anfrage zum direkten Abrufen aus mirror.gcr.io schlägt fehl, wenn keine im Cache gespeicherte Kopie des Images vorhanden ist.

Nächste Schritte