Tutorial: Erstellen einer Azure-Containerregistrierung und Übertragen eines Containerimages per Pushvorgang
Dieser Artikel ist der zweite Teil eines dreiteiligen Tutorials. In Teil 1 des Tutorials wurde ein Docker-Containerimage für eine Node.js-Webanwendung erstellt. In diesem Tutorial übertragen Sie das Image per Pushvorgang an die Azure Container Registry-Instanz. Wenn Sie noch das Containerimage erstellen müssen, kehren Sie zum Tutorial 1: Erstellen von Containerimages zurück.
Azure Container Registry ist Ihre private Docker-Registrierung in Azure. Dieser zweite Teil der Tutorialreihe umfasst Folgendes:
- Erstellen einer Azure Container Registry-Instanz mit der Azure-Befehlszeilenschnittstelle
- Markieren eines Containerimages für Ihre Azure Container Registry-Instanz
- Hochladen des Images in Ihre Registrierung
Im nächsten Artikel (dem letzten Tutorial der Reihe) stellen Sie den Container aus Ihrer privaten Registrierung für Azure Container Instances bereit.
Voraussetzungen
Für dieses Tutorial müssen folgende Voraussetzungen erfüllt sein:
Azure CLI: Auf dem lokalen Computer muss mindestens Version 2.0.29 der Azure-Befehlszeilenschnittstelle installiert sein. Führen Sie az --version
aus, um die Version zu finden. Installations- und Upgradeinformationen finden Sie bei Bedarf unter Installieren von Azure CLI.
Docker: In diesem Tutorial wird vorausgesetzt, dass zentrale Docker-Konzepte wie Container und Containerimages sowie grundlegende docker
-Befehle bekannt sind. Eine Einführung in Docker und Container finden Sie in der Docker-Übersicht.
Docker: Für dieses Tutorial muss Docker lokal installiert sein. Für die Docker-Umgebung stehen Konfigurationspakete für macOS, Windows und Linux zur Verfügung.
Wichtig
Da Azure Cloud Shell den Docker-Daemon nicht beinhaltet, müssen Sie sowohl die Azure-Befehlszeilenschnittstelle als auch die Docker-Engine auf Ihrem lokalen Computer installieren, um dieses Tutorial absolvieren zu können. Azure Cloud Shell kann für dieses Tutorial nicht verwendet werden.
Erstellen einer Azure-Containerregistrierung
Bevor Sie Ihre Containerregistrierung erstellen können, benötigen Sie eine Ressourcengruppe für die Bereitstellung. Eine Azure-Ressourcengruppe ist eine logische Sammlung, in der alle Azure-Ressourcen bereitgestellt und verwaltet werden.
Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup in der Region eastus erstellt:
az group create --name myResourceGroup --location eastus
Erstellen Sie nach der Erstellung der Ressourcengruppe mit dem Befehl az acr create eine Azure Container Registry-Instanz. Der Containerregistrierungsname muss innerhalb von Azure eindeutig sein und zwischen 5 und 50 alphanumerische Zeichen enthalten. Ersetzen Sie <acrName>
durch einen eindeutigen Namen für die Registrierung:
az acr create --resource-group myResourceGroup --name <acrName> --sku Basic
Hier ist ein Teil einer Ausgabe für eine neue Azure-Containerregistrierung mit dem Namen mycontainerregistry082 angegeben:
{
"creationDate": "2020-07-16T21:54:47.297875+00:00",
"id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
"location": "eastus",
"loginServer": "mycontainerregistry082.azurecr.io",
"name": "mycontainerregistry082",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sku": {
"name": "Basic",
"tier": "Basic"
},
"status": null,
"storageAccount": null,
"tags": {},
"type": "Microsoft.ContainerRegistry/registries"
}
Im restlichen Teil dieses Tutorials wird <acrName>
als Platzhalter für den von Ihnen in diesem Schritt gewählten Namen der Containerregistrierung bezeichnet.
Anmelden bei Container Registry
Sie müssen sich bei der Azure Container Registry-Instanz anmelden, damit Sie Images an sie pushen können. Verwenden Sie den Befehl az acr login, um den Vorgang abzuschließen. Geben Sie den eindeutigen Namen an, den Sie beim Erstellen der Containerregistrierung gewählt haben.
az acr login --name <acrName>
Beispiel:
az acr login --name mycontainerregistry082
Der Befehl gibt nach Abschluss des Vorgangs Login Succeeded
zurück:
Login Succeeded
Markieren von Containerimages
Zum Übertragen eines Containerimages an eine private Registrierung wie Azure Container Registry müssen Sie das Image zuerst mit dem vollständigen Namen des Anmeldeservers für die Registrierung versehen.
Rufen Sie zuerst den vollständigen Namen des Anmeldeservers für Ihre Containerregistrierung ab. Führen Sie den folgenden Befehl az acr show aus, und ersetzen Sie <acrName>
durch den Namen der erstellten Registrierung:
az acr show --name <acrName> --query loginServer --output table
Dies sieht beispielsweise wie folgt aus, wenn Ihre Registrierung den Namen mycontainerregistry082 hat:
az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io
Zeigen Sie die Liste mit Ihren lokalen Images mit dem Befehl docker images an:
docker images
Neben den anderen Images, die auf Ihrem Computer vorhanden sind, sollte das Image aci-tutorial-app angezeigt werden, das Sie im vorherigen Tutorial erstellt haben:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 minutes ago 68.1 MB
Kennzeichnen Sie das Image aci-tutorial-app mit dem Anmeldeserver der Containerregistrierung. Fügen Sie außerdem das Tag :v1
am Ende des Imagenamens hinzu, um die Versionsnummer für das Image anzugeben. Ersetzen Sie <acrLoginServer>
durch das Ergebnis des zuvor ausgeführten Befehls az acr show.
docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1
Führen Sie docker images
erneut aus, um zu überprüfen, ob die Kennzeichnung erfolgreich war:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 minutes ago 68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app v1 5c745774dfa9 7 minutes ago 68.1 MB
Übertragen des Images zu Azure Container Registry mithilfe von Push
Nachdem Sie das Image aci-tutorial-app jetzt mit dem vollständigen Namen des Anmeldeservers Ihrer privaten Registrierung versehen haben, können Sie es mit dem Befehl docker push an die Registrierung pushen. Ersetzen Sie <acrLoginServer>
durch den vollständigen Anmeldeservernamen, den Sie im vorherigen Schritt abgerufen haben.
docker push <acrLoginServer>/aci-tutorial-app:v1
Der push
-Vorgang dauert abhängig von der Internetverbindung zwischen einigen Sekunden und wenigen Minuten. Die Ausgabe sieht ungefähr wie im folgenden Beispiel aus:
docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576
Auflisten der Images in Azure Container Registry
Um sicherzustellen, dass sich das gerade übertragene Image wirklich in Ihrer Azure-Containerregistrierung befindet, können Sie die in der Registrierung enthaltenen Images mit dem Befehl az acr repository list auflisten. Ersetzen Sie <acrName>
durch den Namen Ihrer Containerregistrierung.
az acr repository list --name <acrName> --output table
Zum Beispiel:
az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app
Verwenden Sie den Befehl az acr repository show-tags, um die Tags für ein bestimmtes Image anzuzeigen.
az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table
Die Ausgabe sollte etwa folgendem Beispiel entsprechen:
--------
v1
Nächste Schritte
In diesem Tutorial haben Sie eine Azure-Containerregistrierung für die Verwendung mit Azure Container Instances vorbereitet und ein Containerimage mithilfe von Push an die Registrierung übertragen. Die folgenden Schritte wurden durchgeführt:
- Erstellen einer Azure Container Registry-Instanz mit der Azure-Befehlszeilenschnittstelle
- Markieren eines Containerimages für Azure Container Registry
- Hochladen eines Images in Azure Container Registry
Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie den Container in Azure mithilfe von Azure Container Instances bereitstellen: