Übung: Erstellen und Ausführen eines Containerimages mithilfe von Azure Container Registry Tasks
In dieser Übung verwenden Sie ACR Tasks für die folgenden Aufgaben:
- Erstellen Sie eine Azure Container Registry-Instanz (ACR).
- Erstellen und Pushen eines Images auf der Grundlage eines Dockerfile
- Überprüfen der Ergebnisse
- Ausführen des Images in ACR
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie noch keines haben, können Sie sich unter https://azure.com/free für eine kostenlose Testversion registrieren.
Anmelden bei Azure und Starten von Cloud Shell
Melden Sie sich beim Azure-Portal an, und öffnen Sie den Cloud Shell-Dienst.
Wählen Sie nach Öffnen der Shell die Umgebung Bash aus.
Erstellen einer Azure-Containerregistrierung
Erstellen einer Ressourcengruppe für die Registrierung. Ersetzen Sie
<myLocation>
den folgenden Befehl durch einen Ort in ihrer Nähe.az group create --name az204-acr-rg --location <myLocation>
Erstellen Sie eine Basic-Containerregistrierung. Der Registrierungsname muss innerhalb von Azure eindeutig sein und zwischen 5 und 50 alphanumerische Zeichen enthalten. Ersetzen Sie
<myContainerRegistry>
im folgenden Befehl durch einen eindeutigen Wert.az acr create --resource-group az204-acr-rg \ --name <myContainerRegistry> --sku Basic
Hinweis
Mit dem Befehl wird eine Basic-Registrierung erstellt, eine kostenoptimierte Option für Entwickler, die sich in Azure Container Registry einarbeiten.
Erstellen und Pushen eines Images auf der Grundlage eines Dockerfile
Verwenden Sie nun Azure Container Registry, um ein Image zu erstellen und zu pushen, das auf einem lokalen Dockerfile basiert.
Wechseln Sie zu einem lokalen Verzeichnis, oder erstellen Sie eines, und führen Sie dann den folgenden Befehl aus, um die Dockerfile zu erstellen. Die Dockerfile enthält nur eine Zeile, die auf das in Microsoft Container Registry gehostete Image
hello-world
verweist.echo FROM mcr.microsoft.com/hello-world > Dockerfile
Führen Sie den Befehl
az acr build
aus, der das Image erstellt und nach der erfolgreichen Erstellung an Ihre Registrierung pusht. Ersetzen Sie<myContainerRegistry>
durch den Namen, den Sie zuvor verwendet haben.az acr build --image sample/hello-world:v1 \ --registry <myContainerRegistry> \ --file Dockerfile .
Im Folgenden sehen Sie ein verkürztes Beispiel der Ausgabe des vorherigen Befehls, das die letzten Zeilen mit den endgültigen Ergebnissen zeigt. Sie sehen, dass das Image
sample/hello-word
im Feldrepository
aufgeführt wird.- image: registry: <myContainerRegistry>.azurecr.io repository: sample/hello-world tag: v1 digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a runtime-dependency: registry: mcr.microsoft.com repository: hello-world tag: latest digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a git: {} Run ID: cf1 was successful after 11s
Überprüfen der Ergebnisse
Führen Sie den Befehl
az acr repository list
aus, um die Repositorys in Ihrer Registrierung aufzulisten. Ersetzen Sie<myContainerRegistry>
durch den Namen, den Sie zuvor verwendet haben.az acr repository list --name <myContainerRegistry> --output table
Ausgabe:
Result ---------------- sample/hello-world
Führen Sie den Befehl
az acr repository show-tags
aus, um die Tags im Repository sample/hello-world aufzulisten. Ersetzen Sie<myContainerRegistry>
durch den Namen, den Sie zuvor verwendet haben.az acr repository show-tags --name <myContainerRegistry> \ --repository sample/hello-world --output table
Ausgabe:
Result -------- v1
Ausführen des Images in ACR
Führen Sie mithilfe des Befehls
az acr run
das Containerimagesample/hello-world:v1
aus Ihrer Containerregistrierung aus. Im folgenden Beispiel wird$Registry
verwendet, um die Registrierung anzugeben, in der Sie den Befehl ausführen. Ersetzen Sie<myContainerRegistry>
durch den Namen, den Sie zuvor verwendet haben.az acr run --registry <myContainerRegistry> \ --cmd '$Registry/sample/hello-world:v1' /dev/null
Der Parameter
cmd
in diesem Beispiels führt den Container in seiner Standardkonfiguration aus.cmd
unterstützt jedoch zusätzlichedocker run
-Parameter und sogar anderedocker
-Befehle.Die folgende Beispielausgabe ist gekürzt:
Packing source code into tar to upload... Uploading archived source code from '/tmp/run_archive_ebf74da7fcb04683867b129e2ccad5e1.tar.gz'... Sending context (1.855 KiB) to registry: mycontainerre... Queued a run with ID: cab Waiting for an agent... 2019/03/19 19:01:53 Using acb_vol_60e9a538-b466-475f-9565-80c5b93eaa15 as the home volume 2019/03/19 19:01:53 Creating Docker network: acb_default_network, driver: 'bridge' 2019/03/19 19:01:53 Successfully set up Docker network: acb_default_network 2019/03/19 19:01:53 Setting up Docker configuration... 2019/03/19 19:01:54 Successfully set up Docker configuration 2019/03/19 19:01:54 Logging in to registry: mycontainerregistry008.azurecr.io 2019/03/19 19:01:55 Successfully logged into mycontainerregistry008.azurecr.io 2019/03/19 19:01:55 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network' 2019/03/19 19:01:55 Launching container with name: acb_step_0 Hello from Docker! This message shows that your installation appears to be working correctly. 2019/03/19 19:01:56 Successfully executed container: acb_step_0 2019/03/19 19:01:56 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 0.843801) Run ID: cab was successful after 6s
Bereinigen von Ressourcen
Wenn sie nicht mehr benötigt werden, können Sie den Befehl az group delete
verwenden, um die Ressourcengruppe, die Containerregistrierung und die darin gespeicherten Containerimages zu entfernen.
az group delete --name az204-acr-rg --no-wait