Erste Schritte mit Docker und Compose zum Definieren und Ausführen einer Anwendung mit mehreren Containern in Azure
Mit " Verfassen" verwenden Sie eine einfache Textdatei, um eine Anwendung zu definieren, die aus mehreren Docker-Containern besteht. Sie starten Ihre Anwendung dann mit einem einzelnen Befehl, mit dem alle Schritte zur Bereitstellung Ihrer definierten Umgebung ausgeführt werden. In diesem Artikel wird beispielsweise veranschaulicht, wie Sie schnell einen WordPress-Blog mit einer MariaDB SQL-Back-End-Datenbank auf einem virtuellen Ubuntu-Computer einrichten. Sie können aber auch Compose verwenden, um komplexere Anwendungen einzurichten.
Dieser Artikel wurde zuletzt am 14.02.2019 unter Verwendung von Azure Cloud Shell und Version 2.0.58 der Azure CLI geprüft.
Erstellen eines Docker-Hosts mit der Azure CLI
Installieren Sie die neueste Version der Azure CLI, und melden Sie sich mit az login bei einem Azure-Konto an.
Erstellen Sie zuerst mit az group create eine Ressourcengruppe für Ihre Docker-Umgebung. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus erstellt:
az group create --name myDockerGroup --location eastus
Erstellen Sie eine Datei namens cloud-init.txt , und fügen Sie die folgende Konfiguration ein. Geben Sie sensible-editor cloud-init.txt
ein, um die Datei zu erstellen und eine Liste der verfügbaren Editoren anzuzeigen.
#include https://get.docker.com
Jetzt können Sie mit az vm create einen virtuellen Computer erstellen. Verwenden Sie den --custom-data
-Parameter, um Ihre cloud-init-Konfigurationsdatei zu übergeben. Geben Sie den vollständigen Pfad zu der Konfigurationsdatei cloud-init.txt an, wenn Sie die Datei außerhalb Ihres vorhandenen Arbeitsverzeichnisses gespeichert haben. Mit dem folgenden Beispiel werden ein virtueller Computer namens myDockerVM erstellt und Port 80 für Webdatenverkehr geöffnet.
az vm create \
--resource-group myDockerGroup \
--name myDockerVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys \
--custom-data cloud-init.txt
az vm open-port --port 80 \
--resource-group myDockerGroup \
--name myDockerVM
Es dauert einige Minuten, den virtuellen Computer zu erstellen, die Pakete zu installieren und die App zu starten. Es gibt Hintergrundaufgaben, die weiterhin ausgeführt werden, wenn Ihnen von der Azure CLI wieder eine Eingabeaufforderung angezeigt wird. Sobald der virtuelle Computer erstellt ist, notieren Sie die publicIpAddress
, die von der Azure-CLI angezeigt wird.
Installieren von Compose
SSH zu Ihrem neuen virtuellen Docker-Hostcomputer. Geben Sie Ihre eigenen IP-Adresse an.
ssh azureuser@10.10.111.11
Installieren Sie Compose auf dem virtuellen Computer.
sudo apt install docker-compose
Erstellen der Konfigurationsdatei „docker-compose.yml“
Erstellen Sie eine docker-compose.yml
-Konfigurationsdatei, um die Docker-Container zu definieren, die auf dem virtuellen Computer ausgeführt werden sollen. Die Datei enthält Angaben zum Image, das für jeden Container ausgeführt werden soll, erforderliche Umgebungsvariablen und Abhängigkeiten, Ports und Links zwischen Containern. Details zur Syntax der YML-Datei finden Sie in der Compose-Dateireferenz.
Erstellen Sie die Datei docker-compose.yml. Verwenden Sie Ihren bevorzugten Text-Editor, um der Datei einige Daten hinzuzufügen. Das folgende Beispiel erstellt die Datei mit einer Eingabeaufforderung für sensible-editor
, um einen zu verwendenden Editor auszuwählen.
sensible-editor docker-compose.yml
Fügen Sie das folgende Beispiel in Ihre Docker Compose-Datei ein. Diese Konfiguration nutzt Images aus der Docker-Hub-Registrierung , um WordPress (Open-Source-Blogging- und Content Management-System) und die verknüpfte MariaDB SQL-Back-End-Datenbank zu installieren. Geben Sie Ihr eigenes Kennwort (MYSQL_ROOT_PASSWORD) ein.
wordpress:
image: wordpress
links:
- db:mysql
ports:
- 80:80
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: <your password>
Starten des Containers mit Compose
Führen Sie in demselben Verzeichnis, in dem sich die Datei docker-compose.yml befindet, den folgenden Befehl aus (je nach Umgebung kann es erforderlich sein, docker-compose
mit sudo
auszuführen):
sudo docker-compose up -d
Mit diesem Befehl werden die in docker-compose.yml angegebenen Docker-Container gestartet. Es dauert ein bis zwei Minuten, bis dieser Schritt abgeschlossen ist. Daraufhin wird eine Ausgabe angezeigt, die in etwa wie folgt aussieht:
Creating wordpress_db_1...
Creating wordpress_wordpress_1...
...
Um zu prüfen, ob die Container ausgeführt werden, geben Sie sudo docker-compose ps
ein. Die Ausgabe sollte folgendermaßen aussehen:
Name Command State Ports
-----------------------------------------------------------------------------------
azureuser_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
azureuser_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:80->80/tcp
Sie können nun auf dem virtuellen Computer über Port 80 eine direkte Verbindung mit WordPress herstellen. Öffnen Sie einen Webbrowser, und geben Sie den IP-Adressnamen Ihres virtuellen Computers ein. Daraufhin sollte der Startbildschirm von WordPress angezeigt werden, auf dem Sie die Installation abschließen und erste Schritte mit der Anwendung ausführen können.
Nächste Schritte
- Weitere Beispiele zum Erstellen und Bereitstellen von Apps mit mehreren Containern finden Sie in der Composer-Befehlszeilenreferenz und im Benutzerhandbuch.
- Verwenden Sie eine von Ihnen oder der Communityerstellte Vorlage des Azure-Ressourcen-Managers, um eine Azure-VM mit Docker und eine mit Compose eingerichtete Anwendung bereitzustellen. Die Vorlage WordPress-Blog mit Docker bereitstellen verwendet Docker und Compose, um WordPress schnell mit einem MySQL-Back-End auf einem virtuellen Ubuntu-Computer bereitzustellen.
- Sie können Docker Compose auch in ein Docker Swarm-Cluster integrieren. Entsprechende Szenarien finden Sie unter Using Compose with Swarm (Verwenden von Compose mit Swarm).