Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält eine Übersicht über Methoden und Workflows zur Verwendung einer lokalen Registrierung, z. B. einer Azure-Containerregistrierung , um Kopien öffentlicher Inhalte zu verwalten, einschließlich Containerimages in Docker Hub.
Risiken bei öffentlichen Inhalten
Ihre Umgebung hängt möglicherweise von öffentlichen Inhalten ab, z. B. öffentliche Containerimages, Helmdiagramme, Open Policy Agent (OPA)-Richtlinien oder andere Artefakte. Beispielsweise könnten Sie nginx für das Dienstrouting oder docker build FROM alpine
ausführen, indem Sie Images direkt aus Docker Hub oder einer anderen öffentlichen Registrierung pullen.
Ohne geeignete Kontrollen können Abhängigkeiten von Inhalten öffentlicher Registrierungen zu Risiken für die Workflows zur Imageentwicklung und -bereitstellung führen. Um diese Risiken zu minimieren, sollten Sie nach Möglichkeit lokale Kopien von öffentlichen Inhalten aufbewahren. Weitere Informationen finden Sie im Blog der Open Container Initiative.
Authentifizieren mit Docker Hub
Wenn Sie derzeit öffentliche Images aus Docker Hub als Teil eines Build- oder Bereitstellungsworkflows abrufen, empfiehlt es sich, sich mit einem Docker Hub-Konto zu authentifizieren , anstatt eine anonyme Pullanforderung zu erstellen.
Wenn Sie häufig anonyme Pull Requests machen, sehen Sie möglicherweise Docker-Fehler ähnlich wie ERROR: toomanyrequests: Too Many Requests.
oder You have reached your pull rate limit.
. Authentifizieren Sie sich bei Docker Hub, um diese Fehler zu vermeiden.
Hinweis
Ab dem 2. November 2020 gelten Downloadratenbeschränkungen für anonyme und authentifizierte Anforderungen an Docker Hub von Docker Free Plan-Konten. Diese Grenzwerte werden durch IP-Adresse bzw. Docker-ID erzwungen.
Um Die Anzahl der Pull Requests zu schätzen, denken Sie daran, dass bei Verwendung von Cloudanbieterdiensten oder bei der Arbeit hinter einer Unternehmens-NAT mehrere Benutzende als Teilmenge von IP-Adressen für Docker Hub angezeigt werden. Wenn Sie für Anforderungen an Docker Hub eine Authentifizierung über ein kostenpflichtiges Docker-Konto hinzufügen, können Sie potenzielle Dienstunterbrechungen aufgrund der Drosselung der Ratenbegrenzung vermeiden.
Ausführliche Informationen finden Sie unter Docker Pricing and Subscriptions (Docker – Preise und Abonnements) und Docker Terms of Service (Docker-Vertragsbedingungen).
Docker Hub-Zugriffstoken
Docker Hub unterstützt persönliche Zugriffstoken als Alternativen zu einem Docker-Kennwort für die Authentifizierung bei Docker Hub. Token werden für automatisierte Dienste empfohlen, die Images von Docker Hub pullen. Sie können mehrere Token für verschiedene Benutzer oder Dienste generieren und Token widerrufen, wenn sie nicht mehr benötigt werden.
Wenn Sie sich mit einem Token bei docker login
authentifizieren möchten, lassen Sie das Kennwort in der Befehlszeile weg. Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, geben Sie stattdessen das Token ein. Wenn Sie die zweistufige Authentifizierung für das Docker Hub-Konto aktiviert haben, müssen Sie bei der Anmeldung über die Docker-Befehlszeilenschnittstelle ein persönliches Zugriffstoken verwenden.
Authentifizieren über Azure-Dienste
Mehrere Azure-Dienste, einschließlich App Service- und Azure-Containerinstanzen, unterstützen das Abrufen von Images aus öffentlichen Registrierungen wie Docker Hub für Containerbereitstellungen. Wenn Sie ein Image über Docker Hub bereitstellen möchten, empfiehlt es sich, die Einstellungen für die Authentifizierung über ein Docker Hub-Konto zu konfigurieren. Beispiele:
App-Dienst
- Imagequelle: Docker Hub
- Repositoryzugriff: Privat
- Anmeldung:<Docker Hub-Benutzername>
- Kennwort:<Docker Hub-Token>
Weitere Informationen finden Sie unter Docker Hub authenticated pulls on App Service (Über Docker Hub authentifizierte Pulls in App Service).
Azure Container Instances
- Imagequelle: Docker Hub oder andere Registrierung
- Imagetyp: Privat
- Anmeldeserver für die Imageregistrierung: docker.io
- Benutzername für Imageregistrierung:<Docker Hub-Benutzername>
- Kennwort für Imageregistrierung:<Docker Hub-Token>
- Image: docker.io/<Repositoryname>:<Tag>
Konfigurieren des Artifact Cache für die Nutzung öffentlicher Inhalte
Die bewährten Methoden zum Verwenden öffentlicher Inhalte bestehen darin, die Registrierungsauthentifizierung und das Artifact Cache-Feature zu kombinieren. Verwenden Sie den Artefaktcache, um Ihre Containerartefakte auch in privaten Netzwerken in Ihrer Azure-Containerregistrierung zwischenzuspeichern. Die Verwendung des Artefaktcaches schützt Sie nicht nur vor Registrierungsratenbeschränkungen, sondern erhöht auch die Pullzuverlässigkeit in Kombination mit geo-repliziertem ACR, um Artefakte aus der Region abzurufen, die Ihrer Azure-Ressource am nächsten kommt. Darüber hinaus können Sie alle Sicherheitsfeatures verwenden, die ACR bietet, einschließlich privater Netzwerke, Firewallkonfiguration, Dienstprinzipale und mehr. Vollständige Informationen zur Verwendung öffentlicher Inhalte mit ACR Artifact Cache finden Sie im Tutorial zum Artefaktcache .
Importieren von Images in eine Azure Container Registry-Instanz
Um Kopien öffentlicher Images zu verwalten, erstellen Sie eine Azure-Containerregistrierung, wenn Sie noch keines haben. Verwenden Sie die Azure CLI, das Azure-Portal, Azure PowerShell oder andere Tools, um eine Registrierung zu erstellen.
Als einmaliger Schritt wird empfohlen, Basisimages und andere öffentliche Inhalte in Ihre Azure Container Registry-Instanz zu importieren. Der Befehl "az acr-Import " in der Azure CLI unterstützt das Importieren von Images aus öffentlichen Registrierungen wie Docker Hub und Microsoft Container Registry sowie aus privaten Containerregistrierungen.
Für az acr import
ist keine lokale Docker-Installation erforderlich. Sie können diesen Befehl in einer lokalen Installation der Azure-Befehlszeilenschnittstelle oder direkt in Azure Cloud Shell ausführen. Er unterstützt Images mit allen Betriebssystemen, Images mit mehreren Architekturen oder OCI-Artefakte (z. B. Helm-Charts).
Je nach den Anforderungen Ihrer Organisation können Sie den Import in einer dedizierten Registrierung oder in einem Repository in einer freigegebenen Registrierung durchführen.
az acr import \
--name myregistry \
--source docker.io/library/hello-world:latest \
--image hello-world:latest \
--username <Docker Hub username> \
--password <Docker Hub token>
Aktualisieren von Imageverweisen
Entwickler von Anwendungsimages müssen sicherstellen, dass der Code auf lokale Inhalte unter ihrer Kontrolle verweist.
- Aktualisieren Sie Imageverweise für die Verwendung der privaten Registrierung. Aktualisieren Sie beispielsweise eine
FROM baseimage:v1
Anweisung in einem Dockerfile zuFROM myregistry.azurecr.io/mybaseimage:v1
für eine nicht-DNL-Registry oderFROM myregistry-abc123.azurecr.io/mybaseimage:v1
für eine DNL-fähige Registry. Weitere Informationen zu DNL-Optionen während der Registrierungserstellung und DNS-Namensauswirkungen finden Sie unter "Schnellstart – Registrierung im Portal erstellen". - Konfigurieren Sie Anmeldeinformationen oder einen Authentifizierungsmechanismus für die Verwendung der privaten Registrierung. Der genaue Mechanismus hängt von den Tools ab, die Sie für den Zugriff auf die Registrierung verwenden, sowie davon, wie Sie den Benutzerzugriff verwalten.
- Wenn Sie einen Kubernetes-Cluster oder Azure Kubernetes Service verwenden, um auf die Registrierung zu zugreifen, finden Sie weitere Informationen in den Authentifizierungsszenarien.
- Weitere Informationen zu Authentifizierungsoptionen mit einer Azure-Containerregistrierung finden Sie hier.
Automatisieren der Aktualisierung von Anwendungsimages
Um die Erstellung von Anwendungsimages zu automatisieren, wenn Basisimages aktualisiert werden, richten Sie eine Aufgabe im Azure Container Registry ein. Dieser Ansatz erweitert den Bildimport. Ein automatisierter Buildtask kann Updates des Basisimages und Updates des Quellcodes nachverfolgen.
Ein detailliertes Beispiel finden Sie unter Verwenden und Verwalten von öffentlichen Inhalten mit Azure Container Registry Tasks.
Hinweis
Ein einzelner vorkonfigurierter Task kann automatisch alle Anwendungsimages neu erstellen, die auf ein abhängiges Basisimage verweisen.
Nächste Schritte
- Erfahren Sie mehr über die Verwendung von ACR Tasks zum Erstellen, Ausführen, Pushen und Patchen von Containerimages in Azure.
- Unter Verwenden und Verwalten von öffentlichen Inhalten mit Azure Container Registry Tasks finden Sie Informationen zu einem automatisierten Workflow mit Kontrollmechanismen zum Aktualisieren von Basisimages in Ihrer Umgebung.
- Weitere Beispiele zum Automatisieren von Imagebuildvorgängen und Imageupdates finden Sie in den Tutorials zu ACR Tasks.