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
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"
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
- Öffnen Sie das Menü Einstellungen von Docker.
- Klicken Sie auf Daemon.
Klicken Sie auf Erweitert. Geben Sie im JSON-Feld einen
registry-mirrors
-Schlüssel mit dem Werthttps://mirror.gcr.io
ein:{ "registry-mirrors" : [ "https://mirror.gcr.io" ] }
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:
- 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.
- 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
- Sie können eigene lokale Docker-Spiegel erstellen, um Bilder im Cache zu speichern. Weitere Informationen finden Sie in der Docker-Dokumentation.
- Dokumentation zu Docker Hub