Azure - Einrichten der Container registry als shared service

drawing drawing drawing

Soll die Azure eigene Docker registry (Service Container registry) genutzt werden, macht es wenig Sinn für jede Umgebung (dev, test, prod), jedes Team oder nach Applikationen/Systeme getrennt diese zu betreiben. Hierbei handelt es sich um ein Shared Service innerhalb eines Unternehmens, dass sich mehrere Teams teilen können.

Inhalt

(this table of content was created by Markdown Menu)

Docker Registry

In Azure heißt der Service für die Docker Registry Container registry.

drawing

Erzeugen einer neuen Container registry

Die Docker registry in Azure ist der Service Container registry. Über das Azure Portal können neue Registries hinzugefügt werden.

drawing

Registry name: Der Name der Docker registry. Die Registry ist jetzt unter “thiscontainerregistry.azurecr.io” zu erreichen.

SKU: Service Level der Registry. Diese bestimmen die Kosten, die für den Service anfallen. Siehe auch: https://azure.microsoft.com/en-us/pricing/details/container-registry/

Authentifizierung an der Container registry

Es gibt zwei Möglichkeiten der Authentifizierung gegen die Dockerregistry um Container zu pushen und zu pullen zu können.

  • Managed Identities: Hiermit ist es möglich personenbezogene Zugriffe auf die Dockerregistry zu organisieren.
  • admin-User: Nutzung eines zentralen admin-Nutzers. Das ist der einfachste Weg um sich gegen eine Dockerregistry zu authentifizieren.

Aktivierung des admin-Nutzers

Der admin-Nutzer kann über das Azure Portal in der Container registry aktiviert werden, dazu dort auf Access keys klicken.

drawing

Admin user: Enable. Es werden automatisch Passwörter (zwei Stück) ausgegeben.

Wichtig: Die Passwörter müssen nicht zwingend herausgeschrieben werden. Diese sind immer wieder aus dem Portal ablesbar und werden dort auch nicht maskiert.

Der Username für das Dockerlogin ist der Name der Container registry, hier im Beispiel “ThisContainerRegistry”.

Testlogin in die Container registry

Mit dem Username und einem der Passwörter kann sofort das Login getestet werden. Diese ist aus dem Internet erreichbar benötigt keine Credentials für Azure, d.h. es kann von jedem Computer mit Docker und Internetzugang getestet werden.

drawing

Nutzung der Registry

Als Beispiel kann der Standard Nginx Container in die Azure Container registry gepushed werden.

drawing

Das Docker image muss dafür neu getagged werden.

drawing

Danach kann es einfach gepushed werden.

drawing

Als Test das Image nochmal pullen

drawing

In der Container registry wird der Nginx-Container jetzt auch angezeigt. Dafür geht man in der jeweiligen Registry und wählt Repositories

drawing

Test mit Azure Web Apps

Konfiguration der Basics

Die Nutzung kann mit dem Service Azure Web App getestet werden, dem serverless Service von Azure.

drawing

Name: Der Name, den die App haben soll. Wichtig: Der Name ist gleich dem Hostname, mit dem die App aus dem Internet aufgerufen wird. Daher muss dieser weltweit unique sein. Hier im Beispiel kann die App (bzw. der Nginx Web Server) unter thiswebapp999.azurewebsites.net aufgerufen werden.

Publish: Docker container um einen Docker container als Web App laufen zu lassen. Die Alternative wäre, die App als Code bereitzustellen. Hier wäre aber dann ein paar Vorgaben zu erfüllen, damit die Web App funktioniert.

Operating System: Linux

Sku and size: Die SKU und die Größe bestimmt den Umfang des Service sowie die Kosten. Für einen Test ist die Free Version vollkommen ausreichend. Weitere Informationen findet man hier https://azure.microsoft.com/en-us/pricing/details/app-service/windows/

Pullen des Container innerhalb der gleichen Subscription

Wird die Web App innerhalb der eigenen Subscription erzeugt, kann der Dockercontainer direkt aus der Container registry ausgewählt werden. Eine weitere Authentifizierung ist nicht notwendig.

drawing

Image Source: Azure Container registry

Registry: thiscontainerregistry

Image: nginx

Tag: latest

Pullen des Container außerhalb der Subscription

Ein Dockercontainer kann auch bezogen werden, wenn die Web App außerhalb der Subscription erzeugt wird, in der die Container registry läuft. Dann muss die Registry genauso eingerichtet werden, wie wenn man von außerhalb von Azure die Registry nutzen möchte (s.o.).

drawing

Image Source: Private Registry

Registry: Server URL: https://thiscontainerregistry.azurecr.io

Username: ThisContainerRegistry

Password: Passwort der Admin-Nutzers (s.o.)

Image: nginx

Tag: latest

Start des Webseite

Nach ein paar Minuten, wenn der Nginx container hochgefahren wurde, kann die Nginx Standard Seite aufgerufen werden. Diese ist unter thiswebapp999.azurewebsites.net zu erreichen.

drawing

Interessiert? Klingen Sie einfach durch.

Jörn Kleinbub

Die YOTRON GmbH wird von Jörn Kleinbub gegründet. Ein Berater für Datenmanagement, IT-Automatisierung, DevOps und Cloud Management mit Erfahrung in einer Vielzahl von Projekten für viele verschiedene Kunden in unterschiedlichen Branchen.

Verlassen des Chats? / Leaving Chat?

Sie verlieren die aktuelle Chatkommunikation. / You are losing the current chat communication.

Send
Read the GDPR/DSGVO