Was ist Docker Compose und wie wird es verwendet?

0
242

Docker Compose ist ein Tool, mit dem Sie die Bereitstellungen vieler zentral verwalten können verschiedene Docker-Container. Es ist ein wichtiges Tool für jede Anwendung, die mehrere Microservices benötigt, da jeder Dienst problemlos in einem separat verwalteten Container untergebracht werden kann.

What Funktioniert Docker Compose?

Docker-Container werden zum Ausführen von Anwendungen in einer isolierten Umgebung verwendet. Es ist heutzutage durchaus üblich, Anwendungsbereitstellungen in Docker zu sehen, um die zahlreichen Vorteile zu nutzen, die es mit sich bringt. Es ist jedoch oft nicht so einfach, nur einen einzelnen Container auszuführen. Normalerweise haben Sie möglicherweise viele Container, die als ein zusammenhängender Service aus vielen beweglichen Teilen fungieren.

All dies zur Bereitstellungszeit zu verwalten ist chaotisch. Um dies zu bereinigen, bietet Docker Docker Compose an, ein Konfigurationstool, mit dem mehrere Container gleichzeitig ausgeführt werden können. Sie können die gesamte Konfiguration in einer YAML-Datei definieren und dann alle Container mit einem Befehl starten.

Anstatt alle Ihre Dienste in einem großen Container zu haben, können Sie sie mit Docker Compose einzeln aufteilen überschaubare Container. Dies ist sowohl für die Erstellung als auch für die Bereitstellung besser, da Sie alle in separaten Codebasen verwalten können und nicht jeden einzelnen Container manuell starten müssen.

Die Verwendung von Docker Compose erfolgt in drei Schritten:

  • Erstellen Sie die Komponenten-Images mit ihren Dockerfiles oder rufen Sie sie aus einer Registry ab.
  • Definieren Sie alle Komponentendienste in einer docker-compose.yml-Datei.
  • Führen Sie alle zusammen mit . aus die docker-compose CLI.

Docker Compose ist keine andere Art von Dockerfile. Sie müssen Ihre Docker-Container weiterhin mit einem Dockerfile erstellen und veröffentlichen. Anstatt sie jedoch direkt auszuführen, können Sie Docker Compose verwenden, um die Konfiguration einer Bereitstellung mit mehreren Containern zu verwalten.

Wie verwenden Sie Docker Compose?

Die Konfiguration einer Docker Compose-Datei erfolgt in docker-compose.yml. Sie müssen dies nicht wie ein Dockerfile im Stammverzeichnis Ihres Projekts platzieren. Tatsächlich kann es überall hingehen, da es von keinem anderen Code abhängt. Wenn Sie die Bilder jedoch lokal erstellen, müssen sie in einem Projektordner mit dem erstellten Code abgelegt werden.

Werbung

Eine Compose-Konfigurationsdatei sieht in etwa wie folgt aus. Diese Konfiguration führt eine WordPress-Instanz mit dem WordPress-Container aus dem Docker Hub aus. Dies hängt jedoch von einer MySQL-Datenbank ab, die ebenfalls von Compose erstellt wird.

version: '3' services: db: image: mysql:5.7 Volumes: – db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: rootpasswordchangeme MYSQL_DATABASE: wordpress MYSQL_USER: usernamechangeme MYSQL_PASSWORD: passwordchangeme wordpress: image:hängt: – db wordpress:latest ports: – “8000:80” restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: usernamechangeme WORDPRESS_DB_PASSWORD: passwordchangeme volume: db_data:

Werfen wir einen Blick auf das Format dieser Datei. Zuerst eine Versionsnummer, da sich die Syntax je nach verwendeter Version ändern kann.

Als nächstes eine Liste der Dienste. Die erste heißt “db,” und verwendet den mysql:5.7-Container, der so eingestellt ist, dass er immer neu gestartet wird, und mit Umgebungsvariablen, um die Datenbank mit einem Nutzer und einem Passwort zu konfigurieren. Um Daten über Neustarts hinweg beizubehalten, wird dieses Image mit einem Docker-Volume konfiguriert, das in das MySQL-Datenverzeichnis eingehängt ist.

Der andere Dienst ist “wordpress,” Dies hängt vom Datenbankdienst ab und stellt sicher, dass Docker vor der Ausführung sicherstellt, dass die Datenbank gestartet wird. Es macht Port 80 als Port 8000 verfügbar und setzt einige Umgebungsvariablen, damit es eine Verbindung zu MySQL herstellen kann. Beachten Sie, dass der Host für die Datenbank auf db:3306 eingestellt ist, was dem WordPress-Container mitteilt, sich mit der “db” Dienst.

Zuletzt werden die Volumes für den persistenten Speicher definiert. Optional können Sie auch benutzerdefinierte Netzwerke für die Container definieren. Es gibt viele erweiterte Optionen, die Sie konfigurieren können. Wenn Sie also etwas Bestimmtes tun möchten, sollten Sie die Dokumentation für Docker Compose überprüfen.

Werbung

Nach der Konfiguration ist das Starten dieses Dienstes einfach. Führen Sie einfach docker-compose up aus, wodurch alle erforderlichen Container abgerufen und Ihre Dienste gestartet werden.

docker-compose up -d

Und Sie sollten sehen, dass die Dienste auf dem System mit docker ps ausgeführt werden. In diesem Fall sehen Sie, dass WordPress ordnungsgemäß funktioniert.

VERWANDTE: So installieren Sie Docker und Docker Compose unter Linux

Building Mit Docker Compose

Docker Compose kann auch innerhalb eines Dockerfile-Projekts verwendet werden und kann so eingerichtet werden, dass ein Image lokal erstellt und ausgeführt wird, anstatt es aus dem Docker Hub zu ziehen.

To do Sie müssen dem Dienst also lediglich einen Build-Abschnitt hinzufügen. Sie können verschiedene Kontextverzeichnisse sowie verschiedene Dockerfiles für verschiedene Images festlegen.

version: “3.8” services: webapp: build: context: ./dir dockerfile: Dockerfile-alternate image: imagename:tag

In In diesem Fall wird auch die Variable image: variable festgelegt, aber hier wird sie verwendet, um das von Docker Compose erstellte Image mit Tags zu versehen.