Zum Hauptinhalt springen

So richten Sie docker-compose ein.yml und damit arbeiten

Containerisierung ist eine beliebte Technologie, mit der Entwickler Anwendungen und ihre Abhängigkeiten in vollständig isolierte Umgebungen, sogenannte Container, verpacken können. Docker ist eines der beliebtesten Container-Tools und verwendet eine Docker-Compose-Datei.yml zum Definieren und Verwalten von Containern.

Die Docker-compose-Datei.yml ist eine Textdatei, die eine Beschreibung der Container und ihrer Verknüpfungen enthält. Mit dieser Datei können Sie problemlos mehrere Container mit einem einzigen Befehl erstellen, ausführen und verwalten. Docker-compose.yml verwendet eine einfache und lesbare Syntax, sodass selbst unerfahrene Docker-Benutzer damit umgehen können, sie zu verwenden.

In der Datei docker-compose.yml Sie können mehrere Dienste definieren, von denen jeder seine eigenen Parameter haben kann, z. B. ein Containerimage, Ports, Umgebungsvariablen und andere Einstellungen. Zusätzlich können Sie Abhängigkeiten zwischen Containern angeben, damit sie in einer bestimmten Reihenfolge gestartet und angehalten werden. Dies ist besonders nützlich, wenn Sie einen bestimmten Container benötigen, der von einem anderen Container abhängig ist, z. B. einer Datenbank oder einem Cache.

Verwenden Sie docker-compose.yml macht die Arbeit mit Docker bequemer und effizienter. Sie müssen nicht mehr viele Befehle ausführen, um Container zu erstellen und zu konfigurieren, Sie können einfach einen einzigen Befehl ausführen, und Docker erstellt und konfiguriert alle in der Datei beschriebenen Container selbst. Dadurch wird die Zeit und der Aufwand für die Bereitstellung und Verwaltung der Anwendung reduziert.

Wie erstelle ich docker-compose?yml-Datei

Um docker-compose zu erstellen.die yml-Datei, die die Docker-Container verwaltet, müssen Sie die folgenden Schritte ausführen:

  1. Öffnen Sie einen Texteditor auf Ihrem Computer.
  2. Erstellen Sie eine neue Datei und nennen Sie sie docker-compose.yml .
  3. Öffnen Sie die Docker-compose-Datei.yml im Editor.
  4. Beginnen Sie die Datei mit der Angabe der Docker-Compose-Version. Zum Beispiel:
version: '3'

Version 3 ist zum Zeitpunkt des Schreibens am aktuellsten und wird für die Verwendung empfohlen.

  1. Fahren Sie mit der Datei fort und identifizieren Sie die Dienste, die Sie in den Docker-Containern ausführen möchten. Zum Beispiel:
services:app:image: nginx:latestports:- "80:80"volumes:- ./app:/usr/share/nginx/htmldb:image: mysql:latestenvironment:MYSQL_ROOT_PASSWORD: mysecretpassword

In diesem Beispiel werden zwei Dienste erstellt: app und db . Jeder Dienst hat seinen eigenen Namen, sein Image, seine Ports, Umgebungsvariablen und andere Parameter.

  1. Speichern Sie die Docker-compose-Datei.yml .

Jetzt haben Sie eine Docker-Compose-Datei.yml , das zum Verwalten von Docker-Containern mit Docker Compose bereit ist. Sie können Docker Compose-Befehle ausführen, um Ihre Container zu erstellen, zu starten und zu stoppen.

Definieren von Containern in docker-compose.yml

Um Container in einer Docker-compose-Datei zu definieren.yml , Sie müssen die YAML-Syntax verwenden. Jeder Container wird als separater Block mit dem Schlüsselwort services definiert :

services:название_контейнера_1:параметры_контейнера_1название_контейнера_2:параметры_контейнера_2. 

Der Name jedes Containers wird nach einem Bindestrich ( - ) angegeben und kann aus Kleinbuchstaben, Zahlen und Unterstrichen bestehen.

Die Parameter des Containers werden als Schlüssel-Wert-Paare definiert:

название_контейнера:параметр_1: значение_1параметр_2: значение_2. 

Zu den Schlüsselparametern gehören in der Regel:

  • image : gibt den Namen des Docker-Images an, das zum Erstellen des Containers verwendet wird
  • ports : Gibt die Ports an, auf die der Container innerhalb und außerhalb des Netzwerks verfügbar sein soll
  • volumes : Definiert die Zuordnungen von Volumes (Verzeichnissen oder Dateien) zwischen dem Container und dem Hostsystem
  • environment : Legt die Umgebungsvariablen fest, die innerhalb des Containers verfügbar sind

Andere Parameter wie command , networks , depends_on und restart können auch zum Anpassen des Containerverhaltens verwendet werden.

Verwenden von Docker-compose-Dateien.yml Sie können mehrere Container definieren und konfigurieren, die miteinander interagieren, und mit Docker Compose ganze Anwendungen erstellen.

Nachdem Sie die Container in der docker-compose-Datei definiert haben.yml kann Docker Compose-Befehle (z. B. docker-compose up oder docker-compose down ) verwenden, um diese Container zu verwalten, die Umgebung zu initialisieren und andere Operationen mit Docker-Containern durchzuführen.

Installieren und Ausführen von Containern mit docker-compose.yml

Bevor Sie docker-compose verwenden.yml Sie müssen Docker und Docker Compose auf Ihrem Computer installieren.

Befolgen Sie die Anweisungen auf der offiziellen Docker-Website, um Docker zu installieren: https://docs.docker.com/engine/install/

Stellen Sie nach der Installation von Docker sicher, dass es ordnungsgemäß funktioniert, indem Sie den Befehl ausführen:

docker --version

Installieren Sie dann Docker Compose mit dem Befehl:

sudo apt install docker-compose

Überprüfen Sie, ob Docker Compose korrekt installiert ist, indem Sie den folgenden Befehl ausführen:

docker-compose --version

Nachdem Sie Docker und Docker Compose erfolgreich installiert haben, können Sie mit der Verwendung von docker-compose beginnen.yml zum Verwalten von Docker-Containern.

Erstellen Sie eine neue Datei in Ihrem Projekt mit dem Namen docker-compose.yml. Definieren Sie innerhalb der Datei die Services, die Sie in den Containern ausführen möchten, und ihre Konfiguration.

Ein einfaches Docker-Compose-Beispiel.yml-Datei:

version: '3'services:web:image: nginx:latestports:- '80:80'volumes:- ./html:/usr/share/nginx/html

In diesem Beispiel definieren wir einen Service namens "web". Wir verwenden ein Nginx-Image mit dem Tag "latest", werfen Port 80 auf die Hostmaschine und mounten ein lokales "html" -Verzeichnis in den Nginx-Container.

Führen Sie den Befehl aus, um die Container auszuführen:

docker-compose up

Wenn alles korrekt konfiguriert ist, lädt Docker Compose die erforderlichen Images herunter und führt die Container auf Ihrem Computer aus.

Sie können die Ausführung von Containern mit dem Befehl stoppen:

docker-compose down

Hinweis: Dies ist nur eine grundlegende Einführung in die Verwendung von Docker-compose.yml. Sie können komplexere Szenarien mit erweiterten Optionen und Optionen konfigurieren und ausführen. Weitere Informationen finden Sie in der Docker Compose-Dokumentation.

Verwalten und Verwalten des Containerlebenszyklus

Um Docker-Container mit docker-compose zu verwalten.yml, Sie können verschiedene Befehle und Parameter in der Konfigurationsdatei verwenden. Im Folgenden finden Sie einen kleinen Überblick über die wichtigsten Funktionen zur Verwaltung und Verwaltung des Containerlebenszyklus.

  • Container erstellen: Wenn Sie docker-compose up ausführen, erstellt Docker Container basierend auf den in der Konfigurationsdatei beschriebenen Images. In der Datei können Sie verschiedene Parameter zum Erstellen von Containern angeben, z. B. Name, Ports, Umgebungsvariablen, Netzwerkeinstellungen und andere.
  • Container starten und stoppen: Sie können den Befehl docker-compose up verwenden, um alle in der Konfigurationsdatei beschriebenen Container auszuführen. Mit dem Befehl docker-compose down können Sie alle Container anhalten und löschen. Sie können auch einzelne Container mit dem Befehl docker-compose start bzw. docker-compose stop starten und stoppen.
  • Container neu starten: Wenn Sie Änderungen an einer Konfigurationsdatei oder an Images vorgenommen haben und diese anwenden möchten, können Sie den Befehl docker-compose restart verwenden. Sie startet nur die Container neu, die geändert wurden, und lässt den Rest arbeiten.
  • Container neu erstellen: Sie können den Befehl docker-compose up --force-recreate verwenden, um Container basierend auf aktualisierten Images oder Konfigurationsdateien vollständig neu zu erstellen. Sie löscht und erstellt alle Container neu, wobei der aktuelle Status ignoriert wird.
  • Verwalten von Abbildversionen: In der docker-compose-Datei.yml Sie können bestimmte Versionen von Images mit Tags oder Hashes angeben. Auf diese Weise können Sie die Versionen und Aktualisierungen von Containern überwachen, um Kompatibilität und Zuverlässigkeit zu gewährleisten.
  • Verwalten von Netzwerken und Ressourcentrennung: Docker Compose bietet die Möglichkeit, Netzwerkverbindungen zwischen Containern zu konfigurieren und die für jeden Container zugewiesenen Ressourcen zu definieren. In der Konfigurationsdatei können Sie Netzwerkeinstellungen wie Ports, die Kommunikation zwischen Containern und den Zugriff auf externe Netzwerke angeben.

Mit den oben beschriebenen Funktionen können Sie den Lebenszyklus von Docker-Containern mithilfe von Docker-Compose-Konfigurationsdateien flexibler verwalten und verwalten.yml.

Skalieren und Aktualisieren von Containern mit docker-compose.yml

Beim Skalieren von Containern werden mehrere Instanzen eines Containers erstellt, um die Last gleichmäßig zu verarbeiten. Mit Docker Compose können Sie die Anzahl der Instanzen jedes Containers in der Docker-compose-Datei angeben.yml mit dem Parameter scale . Wenn Sie beispielsweise einen Web-Service haben und drei Instanzen dieses Containers erstellen möchten, können Sie Folgendes angeben:

services:web:build: .ports:- "80:80"scale: 3

Nach dem Ausführen des Befehls docker-compose up -d erstellt und führt Docker Compose drei Instanzen des Webcontainers an verschiedenen Ports aus.

Das Aktualisieren von Containern besteht darin, alte Versionen von Containern durch neue zu ersetzen, ohne die Anwendung zu unterbrechen. Dazu stellt Docker Compose den Befehl docker-compose up mit der Option --no-recreate bereit. Dadurch können Sie Dienste von aktualisierten Docker-Images aktualisieren, ohne die Container neu zu erstellen.

Um Container auf neue Versionen zu aktualisieren, müssen Sie zuerst ein neues Docker-Image erstellen und es in das Repository hochladen. Dann müssen Sie die Docker-Compose-Datei aktualisieren.yml, indem Sie die aktualisierte Version des Abbilds angeben. Danach können Sie den Befehl docker-compose up -d --no-recreate ausführen, um die Container zu aktualisieren.

Daher aktualisiert Docker Compose nur die Container, für die die Images geändert wurden, und lässt die anderen Container unverändert. Dadurch können Sie die Anwendung Stück für Stück aktualisieren, Ausfallzeiten minimieren und Container für die Aktualisierung mithilfe des Image-Versions-Tags zuweisen.

Abschließend ist Docker Compose und die Datei docker-compose.yml bieten eine leistungsstarke Möglichkeit, Docker-Container zu verwalten, einschließlich der Skalierung und Aktualisierung von Containern. Dies hilft beim Erstellen und Verwalten skalierbarer und aktualisierbarer Anwendungen, die auf Docker-Containern basieren, mit minimalem Aufwand.

Erweiterung der Funktionalität durch zusätzliche Dienste und Plugins

Docker Compose bietet die Möglichkeit, zusätzliche Dienste und Plugins zu verwenden, um die Funktionalität Ihres Projekts zu erweitern.

Sie können Ihrer Docker-Compose-Datei neue Dienste hinzufügen, die für die Ausführung Ihrer Anwendung erforderlich sind.yml. Sie können beispielsweise eine PostgreSQL- oder Redis-Datenbank zum Speichern von Daten hinzufügen. Definieren Sie einfach einen neuen Service und geben Sie dessen Parameter wie Containername, Image und Ports an.

Sie können auch Plugins aktivieren, um zusätzliche Funktionen hinzuzufügen oder das Verhalten Ihrer Container anzupassen. Mit dem Network-Plugin können Sie beispielsweise Docker-Netzwerke mit Docker-Compose erstellen. Sie können ein Netzwerk für Ihre Container konfigurieren und Netzwerkparameter wie Subnetze und Gateway definieren.

Führen Sie den Befehl docker-compose up mit Ihrer docker-compose-Datei aus.yml und indem Sie die erforderlichen Dienste und Plugins hinzufügen, können Sie Ihre Docker-Container einfach mit docker-compose verwalten. Sie können Container mit einfachen Befehlen skalieren, neu starten, stoppen und löschen.

Die Verwendung zusätzlicher Dienste und Plugins für Ihr Projekt kann die Bereitstellung und Verwaltung Ihrer Docker-Container erheblich vereinfachen. Auf diese Weise können Sie sich auf die Entwicklung Ihrer Anwendung konzentrieren, ohne Zeit mit der Einrichtung Ihrer Infrastruktur zu verschwenden.