GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Was ist Docker Compose

Einführung

Die Entwicklung von Anwendungen mit Docker kann schwierig werden, wenn mehrere Dienste und Container unter einen Hut gebracht werden. Erfahren Sie mehr über Docker Compose, das Tool, mit dem Sie Multi-Container-Anwendungsumgebungen ausführen können.

In diesem Tutorial erfahren Sie alles über Docker Compose, die Vorteile der Verwendung dieses Tools, seine Anwendungsfälle und Funktionen.

Was ist Docker Compose?

Eine Anwendung kann aus mehreren Containern bestehen, auf denen unterschiedliche Dienste ausgeführt werden. Es kann mühsam sein, Container manuell zu starten und zu verwalten, daher hat Docker ein nützliches Tool entwickelt, das dabei hilft, den Prozess zu beschleunigen – Docker Compose.

Docker Compose ist eine Software, die zum Definieren und Ausführen von Docker-Anwendungen mit mehreren Containern verwendet wird. Es kann mehrere Container gleichzeitig in der Produktions-, Staging-, Entwicklungs-, Test- und CI-Umgebung verarbeiten. Verwenden Sie daher Docker Compose, um den gesamten Softwareentwicklungslebenszyklus (SDLC) zu verwalten.

Docker Compose funktioniert, indem es Regeln anwendet, die in einer docker-compose.yaml definiert sind Datei. Die YAML-Datei konfiguriert die Dienste der Anwendung und enthält Regeln, die angeben, wie sie ausgeführt werden sollen. Wenn die Datei vorhanden ist, können Sie alle Dienste mit einem einzigen Befehl starten, stoppen oder neu erstellen. Außerdem können Sie den Status eines Dienstes überprüfen, Protokollausgaben anzeigen und einmalige Befehle ausführen.

Die Installation von Docker Compose ist einfach. Eine Schritt-für-Schritt-Anleitung finden Sie unter:

So installieren Sie Docker Compose unter Ubuntu 18.04 So installieren Sie Docker Compose unter CentOS 7 So installieren Sie Docker Compose unter Ubuntu 20.04

Docker Compose-Anwendungsfälle

Häufige Anwendungsfälle von Docker Compose sind:

  • Automatisierte Testumgebungen . Compose unterstützt automatisiertes Testen, was ein wesentlicher Bestandteil von CI/CD ist, da es die erforderliche Testumgebung einfach erstellen und zerstören kann. Entwickler können die Umgebung definieren und konfigurieren, die für die Ausführung automatisierter End-to-End-Tests erforderlich ist, indem sie die entsprechende Docker Compose-Datei verwenden.
  • Einzelne Host-Bereitstellungen . In Docker Compose sind Container so konzipiert, dass sie auf einem einzelnen Host ausgeführt werden, da sie sich traditionell auf Entwicklungs- und Test-Workflows konzentriert haben.
  • Entwicklungsumgebungen . Compose ist eine schnelle und einfache Möglichkeit, Projekte zu starten, da es schnell neue isolierte Entwicklungsumgebungen erstellen kann. Die Software dokumentiert und konfiguriert alle Dienstabhängigkeiten der Anwendung (einschließlich Datenbanken, Caches, Webdienst-APIs usw.). Es ermöglicht Ihnen, einen oder mehrere Container für jede Abhängigkeit mit einem einzigen Befehl zu erstellen und zu starten.

Vorteile von Docker Compose

Hier sind einige der Hauptvorteile der Verwendung von Docker Compose:

  • Schnelle und einfache Konfiguration. Dank YAML-Skripten und Umgebungsvariablen können Sie Anwendungsdienste einfach konfigurieren oder ändern.
  • Sicher interne Kommunikation. Compose erstellt ein Netzwerk, in dem alle Dienste gemeinsam genutzt werden können. Dies fügt der App eine zusätzliche Sicherheitsebene hinzu, da auf die Dienste nicht von außen zugegriffen werden kann.
  • Portabilität und CI/CD-Unterstützung. Da alle Dienste in der docker-compose-Datei definiert sind, können Entwickler einfach auf die gesamte Konfiguration zugreifen und sie freigeben. Durch Abrufen der YAML-Datei und des Quellcodes können sie die Umgebung innerhalb weniger Minuten starten. Dies trägt dazu bei, eine effiziente CI/CD-Pipeline aufzubauen und zu ermöglichen.
  • Effiziente Nutzung von Ressourcen. Mit Docker Compose können Sie mehrere isolierte Umgebungen auf einem Host hosten. Wenn Sie alles auf einer einzigen Hardware ausführen, können Sie viele Ressourcen sparen. Seine Funktionen, die es ihm ermöglichen, eine Konfiguration zwischenzuspeichern und vorhandene Container wiederzuverwenden, tragen ebenfalls zur Ressourceneffizienz bei.

Docker Compose-Funktionen

Es gibt mehrere prominente Docker Compose-Funktionen, die die oben genannten Vorteile bieten.

Hosting mehrerer isolierter Umgebungen auf einem einzigen Host

Compose hält Umgebungen auf einem einzelnen Host mithilfe von Projektnamen voneinander isoliert.

Standardmäßig ist der Projektname der Basisname des Projektverzeichnisses, während das Projektverzeichnis das Basisverzeichnis der docker-compose-Datei ist. Sie können die Standardwerte ändern:

  • Legen Sie den Projektnamen fest mit -p Befehlszeilenoption oder COMPOSE_PROJECT_NAME Umgebungsvariable.
  • Legen Sie das Projektverzeichnis fest unter Verwendung des --project-directory Umgebungsvariable.

Sie können diese Funktion auf einem Entwicklungshost verwenden, um stabile Kopien jedes Funktionszweigs Ihres Projekts auszuführen, indem Sie mehrere Kopien der Umgebung unter verschiedenen Namen erstellen.

Wenn Sie auf einem CI-Server oder einem gemeinsam genutzten Host arbeiten, möchten Sie sicherstellen, dass sich die Builds nicht gegenseitig stören. Setzen Sie dazu die Projektnamen auf eindeutige Build-Nummern.

Unterstützende Umgebungsvariablen

Sie können Container für verschiedene Umgebungen oder Benutzer anpassen, indem Sie Umgebungsvariablen in der docker-compose-Datei hinzufügen. Das gibt Ihnen mehr Flexibilität beim Einrichten von Containern mit Compose, da die Variablenwerte nicht in der Konfiguration fest codiert sind.

Die Variablenwerte können in der Shell-Umgebung festgelegt werden (von der aus Sie docker-compose ausführen ) oder in einer .env-Datei (im Projektverzeichnis gespeichert). Standardmäßig wendet Docker Compose die in der .env-Datei angegebenen Werte an. In der Shell-Umgebung festgelegte Werte überschreiben jedoch diejenigen aus der .env-Datei.

Sie können diese Funktion für alles verwenden, von der sicheren Bereitstellung von Kennwörtern bis hin zur Angabe einer Softwareversion.

Speichern von Volumendaten

Ein weiteres großartiges Feature von Docker Compose ist, dass es Daten speichert, die von den Diensten verwendet werden. Daher müssen Sie sich keine Gedanken über den Verlust von in Containern erstellten Daten machen. Wenn Container aus früheren Läufen vorhanden sind, findet Compose sie und kopiert ihre Volumes in den neuen Lauf.

Wiederverwendung bestehender Container

Compose erstellt nur Container neu, die sich seit der letzten Ausführung geändert haben. Wenn es keine Änderung gibt, wird der vorhandene Container wiederverwendet.

Diese Funktion basiert auf der Fähigkeit der Software, Containerkonfigurationen zwischenzuspeichern, sodass Sie Ihre Dienste schneller einrichten können.

Grundlegende Befehle für Docker Compose

Die grundlegende Syntax zum Ausführen von Docker Compose-Befehlen lautet:

docker-compose [command]

Unten finden Sie einige der grundlegendsten Docker Compose-Befehle und wofür sie verwendet werden.

Befehl Beschreibung
docker-compose --help zeige Hilfe, Gebrauchsanweisungen für und Argumente für den Docker-Compose-Befehl
docker-compose build Suchen Sie nach allen Diensten, die den build: enthalten -Anweisung in der Datei docker-compose.yml und führen Sie einen docker build aus für jeden
docker-compose run Einen einmaligen Befehl für einen Dienst ausführen
docker-compose up Container für einen Dienst erstellen, (neu) erstellen, starten und anhängen
docker-compose -f [command] Geben Sie den Speicherort einer Docker-Compose-Konfigurationsdatei an, indem Sie -f hinzufügen Flagge
docker-compose start vorhandene Container für einen Dienst starten
docker-compose stop laufende Container stoppen (ohne sie zu entfernen)
docker-compose pause laufende Container eines Dienstes pausieren
docker-compose unpause Pausierte Container eines Dienstes wieder aufheben
docker-compose down Stoppen Sie Container (und entfernen Sie Container, Netzwerke, Volumes und Images)
docker-compose ps Container in der Docker-Compose-Konfigurationsdatei auflisten
docker-compose images Bilder auflisten, die von erstellten Containern verwendet werden
docker-compose ls laufende Compose-Projekte auflisten

Wie verwende ich Docker Compose?

Es gibt drei Schritte zur Verwendung von Compose:

1. Der erste Schritt besteht darin, ein Dockerfile zu erstellen, um die Anwendungsumgebung zu definieren. Die Datei erstellt Docker-Images, die als Basis für die Container verwendet werden.

2. Als Nächstes müssen Sie die Dienste in einer Compose-Datei definieren. Erstellen Sie eine neue Datei im Projektverzeichnis unter dem Namen docker-compose.yml und definieren Sie Ihre Dienste mithilfe der YAML-Syntax. Ein Beispiel für eine solche Datei würde den folgenden Inhalt enthalten:

version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    links:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

3. Führen Sie schließlich die App mit der Docker Compose CLI aus und verwalten Sie sie. Sie können ein einzelnes docker-compose up ausführen Befehl zum Starten der gesamten Anwendung in einer Instanz.


Ubuntu
  1. Was ist Docker (und Linux-Container?)

  2. So verwenden Sie Docker Compose

  3. Was ist neu in Docker Compose v2?

  4. Eine Kurzanleitung zur Verwendung von Docker Compose

  5. So installieren Sie Docker Compose unter Ubuntu 18.04

So installieren Sie Docker Compose unter CentOS 7

Was ist Docker Compose und wie wird es verwendet?

Was ist ein Docker-Image-Manifest?

So installieren Sie Docker Compose auf Ubuntu

Docker File vs. Docker Compose:Was ist der Unterschied?

Was tun, wenn ein Docker-Container sofort beendet wird