Docker Compose: Grundlagen und Verwendung

Docker Compose ist ein leistungsstarkes und beliebtes Tool zur Verwaltung und Bereitstellung von Anwendungen auf Basis von Docker. Es ermöglicht Ihnen, mehrere Container als ein einziges Projekt zu definieren, zu konfigurieren und auszuführen, was Docker die Anwendungsbereitstellung vereinfacht und die Konsistenz zwischen Entwicklungs- und Produktionsumgebungen gewährleistet.

Nachfolgend finden Sie einige Konzepte und Beispiele für Docker Compose:

Definieren Sie das Projekt mithilfe der Datei docker-compose.yml

In der docker-compose.yml Datei können Sie die für Ihre Anwendung benötigten Dienste definieren. Um beispielsweise eine PHP-Webanwendung mit einer MySQL-Datenbank bereitzustellen, können Sie zwei Dienste wie folgt definieren:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "80:80"  
    volumes:  
   - ./app:/var/www/html  
  
  db:  
    image: mysql:5.7  
    environment:  
      MYSQL_ROOT_PASSWORD: password  
      MYSQL_DATABASE: my_database  

Im obigen Codeausschnitt definieren wir zwei Dienste: web und db. Der web Dienst verwendet PHP 7.4 image mit Apache, überwacht Port 80 und mountet das ./app Verzeichnis vom Host in das /var/www/html Verzeichnis im container. Der db Dienst verwendet MySQL 5.7 image und legt einige für die Datenbank erforderliche Umgebungsvariablen fest.

 

Docker Compose Befehl verwenden

Nachdem Sie das Projekt in der Datei definiert haben docker-compose.yml, können Sie Docker Compose die Dienste mithilfe von Befehlen verwalten.

  • Starten Sie das Projekt: docker-compose up

    Dieser Befehl startet die Container für die in der docker-compose.yml Datei definierten Dienste.

  • Anhalten und Behälter entfernen: docker-compose down

    Dieser Befehl stoppt und entfernt alle mit dem Projekt verbundenen Container.

  • Laufende Container auflisten: docker-compose ps

    Dieser Befehl zeigt den Status der Container im Projekt an.

  • Serviceprotokolle anzeigen: docker-compose logs

    Dieser Befehl zeigt die Protokolle der Dienste im Projekt an.

 

Umgebungsvariablen und Anpassung

Docker Compose ermöglicht Ihnen die Verwendung von Umgebungsvariablen zum Anpassen von Konfigurationen für verschiedene Umgebungen, z. B. Entwicklung und Produktion. Sie können Umgebungsvariablen in der docker-compose.yml Datei verwenden und ihre Werte in entsprechenden .env Dateien definieren.

Wenn Sie beispielsweise eine Umgebungsvariable für den Port des web Dienstes definieren möchten, können Sie der .env Datei eine Zeile wie diese hinzufügen:

WEB_PORT=8080

Dann docker-compose.yml können Sie in der Datei diese Umgebungsvariable wie folgt verwenden:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

Beim Ausführen des docker-compose up Befehls web überwacht der Dienst Port 8080 statt Port 80.

 

Integration mit Docker Swam

Wenn Sie Ihre Anwendung in einer verteilten Umgebung mit mehreren Knoten bereitstellen möchten, Docker Compose können Sie sie integrieren Docker Swarm. Dadurch können Sie Dienste über mehrere Knoten in einem Cluster hinweg verwalten Docker.

Um diese Integration zu nutzen, müssen Sie beim Ausführen von oder- Befehlen in einer Umgebung lediglich die Optionen --orchestrate „oder“ hinzufügen. --with-registry-auth docker stack deploy docker-compose up Swarm

 

Docker Compose ist ein nützliches Tool für die einfache und effiziente Anwendungsentwicklung, das Testen und die Bereitstellung. Es minimiert die Unterschiede zwischen Entwicklungs- und Produktionsumgebungen, sorgt für Konsistenz im Softwareentwicklungsprozess und steigert die Produktivität von Entwicklungsteams.