Docker Hub-Spiegel von Container Registry verwenden

Container Registry spiegelt öffentliche Docker Hub-Images, die häufig von Container Registry-Nutzern angefordert werden. Diese Images haben folgende Eigenschaften:

  • Sie sind in einem Google-Repository gespeichert.
  • Sie sind stärker vor Docker Hub-Ausfällen isoliert.
  • Sie lassen sich leicht in das Google Cloud-System integrieren.
  • Sie werden mit dem Docker Hub-Registry-Spiegel synchronisiert. Änderungen an gespiegelten Images in Docker Hub werden innerhalb von maximal 30 Minuten vom Container Registry-Spiegel erfasst.

Sie können den Docker-Daemon so konfigurieren, dass Images vom Docker Hub-Registry-Spiegel der Container Registry abgerufen werden. Wenn Sie Container Registry als Spiegel konfigurieren, geschieht beim Abrufen eines öffentlichen Images Folgendes:

  • Der Docker-Daemon überprüft die Registry der Container Registry und ruft das Image ab, sofern vorhanden. Sie können mehrere Spiegel konfigurieren und beispielsweise einen eigenen lokalen Spiegel festlegen. Der Docker-Daemon überprüft jeden für das Image konfigurierten Spiegel, bis er das Image findet.
  • Wenn das Image nicht gefunden wird, ruft der Docker-Daemon das Image aus dem kanonischen Repository auf Docker Hub ab.
  • Container Registry fügt dem Spiegel häufig angeforderte Images hinzu, damit diese für zukünftige Anfragen zur Verfügung stehen.

Der Spiegel von Container Registry ist ein Cache und spiegelt Images, für die er Anfragen erhält. Container Registry entfernt regelmäßig Images, die nicht mehr angefordert werden.

Images aus Container Registry-Spiegel abrufen

Mit den folgenden Schritten konfigurieren Sie den Docker-Daemon so, dass Images aus dem Container Registry-Spiegel abgerufen werden.

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"]
      }
      
    • Oder Sie geben auch beim Start des Daemons den Hostnamen von Container Registry an:

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • Alternativ können Sie folgende Zeile in die Datei /etc/default/docker einfügen:

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
      
  2. Dann führen Sie je nach Plattform einen der folgenden Befehle aus, um den Docker-Daemon neu zu starten:

    sudo service docker restart
    sudo service docker stop && sudo service docker start
    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.

Um sicherzustellen, dass der Spiegel konfiguriert ist, führen Sie Folgendes aus:

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

Jetzt werden alle docker pull-Befehle zum Herunterladen von Docker Hub-Images zuerst vom Container Registry-Spiegel angefordert.

Gespiegelte Images auflisten

Sie können die Liste der Repositories sowie die Liste der Tags und Digests in einem bestimmten Repository aufrufen.

  • Um die Liste der im Container Registry-Spiegel enthaltenen Repositories anzuzeigen, führen Sie folgenden Befehl aus:

    gcloud container images list --repository=mirror.gcr.io
    

    Mit diesem Befehl wird die Liste der Repositories ausgegeben, die sich direkt unter mirror.gcr.io befinden. Einige dieser Repositories sind verschachtelt, beispielsweise befinden sich weitere Repositories unter mirror.gcr.io/library.

    Sie können die Liste der verschachtelten Repositories so aufrufen:

    gcloud container images list --repository=REPOSITORY
    

    Dabei ist REPOSITORY ein Repository unter mirror.gcr.io, zum Beispiel mirror.gcr.io/library.

    Dieser Befehl gibt die Liste der Repositories aus, die sich direkt unter dem von Ihnen angegebenen Repository befinden.

  • Verwenden Sie den folgenden Befehl, um die Tags und Digests in einem dieser Repositories aufzurufen:

    gcloud container images list-tags --repository=mirror.gcr.io/REPOSITORY
    

    Dabei ist REPOSITORY eines der unter mirror.gcr.io verschachtelten Repositories.

Nächste Schritte