Bereitstellen in Azure Container Instances mit Docker Desktop

Veröffentlicht am 25 Juni, 2020

Senior Program Manager, Azure Tools

Dieser Blog wurde von Mackenzie Olson, Program Manager, Azure Container Instances verfasst. 

Wir freuen uns über die erste Version der neuen Docker Desktop-Integration mit Microsoft Azure. Erst im vorigen Monat haben Microsoft und Docker diese Zusammenarbeit angekündigt, und heute können Sie sie selbst ausprobieren.

Das neue Edge-Release von Docker Desktop bietet eine Integration zwischen Docker und Microsoft Azure. Dieses ermöglicht es Ihnen, Ihre Anwendungen mit nativen Docker-Befehlen als serverlose Container mit Azure Container Instances auszuführen.

Über die Docker-Befehlszeilenschnittstelle können Sie sich schnell und einfach bei Azure anmelden, einen Container Instances-Kontext mit einem Azure-Abonnement und einer Ressourcengruppe erstellen und anschließend Ihre Einzel-Container-Anwendungen mit docker run auf Container Instances ausführen. Sie können auch Anwendungen mit mehreren Containern in Container Instances bereitstellen, die in einer Docker Compose-Datei mit docker compose up definiert wurden.

Code-to-Cloud mit serverlosen Containern

Azure Container Instances ist eine herausragende Lösung zum Ausführen eines einzelnen Docker-Containers oder einer Anwendung, die mehrere Container umfasst, die mit einer Docker Compose-Datei definiert sind. Mit Container Instances können Sie Ihre Container in der Cloud ausführen, ohne dass Sie eine Infrastruktur einrichten müssen, und Sie können von Features wie der Einbindung von Azure Storage und GitHub-Repositorys als Volumes profitieren. Da es keinen Mehraufwand hinsichtlich der Verwaltung von Infrastruktur oder Plattform gibt, empfiehlt sich Container Instances insbesondere für Benutzer, die in der Cloud schnell Container ausführen müssen.

Container Instances ist auch ein gutes Ziel, um die gleichen Workloads in der Produktionsumgebung auszuführen. In Produktionsszenarien empfiehlt es sich, die Docker-Befehle in einem automatisierten CI/CD-Flow zu nutzen. Dadurch ersparen Sie sich das Umschreiben von Konfigurationsdateien, da dieselbe Dockerfile und dieselben Docker Compose-Dateien mit Tools wie GitHub-Aktionen in der Produktionsumgebung bereitgestellt werden können. Container Instances verfügt zudem über ein Preismodell mit nutzungsbasierter Bezahlung. Das heißt, Ihnen wird nur die CPU- und Speichernutzung pro Sekunde während der Ausführung des Containers berechnet.

Betrachten wir die neue Docker-Azure-Integration anhand eines Beispiels. Wir verfügen über einen Workercontainer, der Aufträge kontinuierlich aus einer Warteschlange abruft und die erforderliche Auftragsverarbeitung ausführt. Dies sind die Schritte, die in Container Instances mit nativen Docker-Befehlen ausgeführt werden müssen:

Erstellen und Ausführen eines Containers in Azure Container Instances mithilfe der Docker-CLI

Ausführen eines einzelnen Containers

Wie in der obigen Animation ersichtlich, ermöglicht die neue Docker-CLI-Integration mit Azure die einfache Ausführung eines Containers in Azure Container Instances. Wenn Sie nur die Docker-CLI verwenden, können Sie sich bei Azure über die mehrstufige Authentifizierung anmelden und einen Docker-Kontext erstellen, indem Sie Container Instances als Back-End verwenden. Ausführliche Informationen zu Container Instances-Kontexten finden Sie in der Dokumentation.

Sobald der neue Container Instances-Kontext erstellt wurde, können Sie damit Container Instances mit vielen der Docker-Standardbefehle (die Sie wahrscheinlich bereits verwenden) als Ziel angeben; hierzu zählen „docker run“, „docker ps“ und „docker rm“. Durch Ausführen eines einfachen Befehls docker run <image> starten Sie einen Container in Container Instances mit dem Image, das in einer Registrierung wie Docker Hub oder Azure Container Registry gespeichert ist. Sie können andere gängige Docker-Befehle ausführen, um Protokolle aus dem ausgeführten Container zu überprüfen und anzuzeigen sowie an den Container anzufügen.

Bereitstellen einer App mit mehreren Containern mithilfe von Docker Compose

Es gibt zahlreiche Containeranwendungen, die aus einigen wenigen verwandten Containern bestehen. Sidecar-Container führen häufig Protokollierungs- oder Signaturdienste für den Hauptcontainer aus. Mit der neuen Docker-Azure-Integration können Sie Docker Compose verwenden, um diese Anwendungen mit mehreren Containern zu beschreiben.

Sie können einen Container Instances-Kontext und eine Docker Compose-Datei als Teil der internen Schleife zum Bearbeiten/Erstellen/Debuggen sowie Ihrer CI/CD-Flows verwenden. Auf diese Weise können Sie die Befehle „docker compose up“ und „docker compose down“ verwenden, um mehrere Container gleichzeitig in Container Instances zu starten oder herunterzufahren.

Visual Studio Code für eine noch bessere Leistung

Die Docker-Erweiterung von Visual Studio Code bietet Ihnen eine integrierte Oberfläche zum Starten, Beenden und Verwalten Ihrer Container, Images, Kontexte und anderer Elemente. Verwenden Sie die Erweiterung, um ein Gerüst für Dockerfiles und Docker Compose-Dateien für beliebige Sprachen hinzuzufügen. Für Node.js, Python und .NET können Sie von dem integrierten One-Click-Debugging Ihrer App im Container profitieren. Und natürlich gibt es noch den Explorer, der über mehrere Bereiche verfügt, über die Sie die Verwaltung Ihrer Docker-Objekte direkt in Visual Studio Code ausführen können.

Verwenden Sie den Bereich Container, um Protokolle aufzulisten, zu starten, zu beenden, zu untersuchen und anzuzeigen und viele weitere Vorgänge auszuführen.

 o	Im Bereich „Container“ im Docker Explorer werden alle Container angezeigt, und Sie können diese verwalten.

Im Bereich Images können Sie Ihre Images auflisten, pullen, markieren und pushen.

 o	Im Bereich „Images“ im Docker Explorer werden alle Images angezeigt, und Sie können diese verwalten.
Stellen Sie eine Verbindung mit Azure Container Registry und Docker Hub im Bereich Registrierungen her, um Ihre Images in der Cloud anzuzeigen und zu verwalten. Sogar die direkte Bereitstellung in Azure ist möglich.

 o	Im Bereich „Registrierungen“ im Docker Explorer werden Registrierungen angezeigt, mit denen Sie eine Verbindung hergestellt haben, und Sie können Images pullen und pushen.

Im Bereich Kontexte können Sie alle Ihre Kontexte auflisten und schnell zwischen diesen wechseln. Wenn Sie den Kontext wechseln, werden die anderen Bereiche aktualisiert, sodass die Docker-Objekte aus dem ausgewählten Kontext angezeigt werden. Container Instances-Kontexte werden in der nächsten Version der Docker-Erweiterung vollständig unterstützt.

o	Im Bereich „Kontexte“ im Docker Explorer werden alle Kontexte angezeigt, und Sie können zwischen diesen wechseln.

Jetzt testen

Installieren Sie das Docker Desktop-Edge-Release, um mit der Docker-Azure-Integration zu beginnen. Sie können derzeit die aktuelle Docker-Erweiterung von Visual Studio Code nutzen; die Container Instances-Kontextunterstützung wird in Kürze verfügbar.

Weitere Informationen zum Docker Desktop-Release finden Sie in diesem Blogbeitrag von Docker. Informationen zum Verwenden von Docker-Container Instances-Kontexten finden Sie in der Dokumentation.