Wie man den docker compose config Befehl zur Validierung und Anzeige von Compose-Dateien verwendet

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie den Befehl docker-compose config verwenden, um Ihre Docker Compose-Dateien zu validieren und anzuzeigen. Wir beginnen mit der Installation von Docker Compose und erstellen dann eine grundlegende Compose-Datei.

Anschließend verwenden Sie den Befehl docker-compose config, um die Syntax der Compose-Datei zu validieren, die aufgelöste Konfiguration in YAML- und JSON-Format anzuzeigen sowie spezifische Informationen wie Dienstnamen und Image-Namen zu extrahieren. Dieses Lab vermittelt Ihnen wesentliche Fähigkeiten für den effektiven Umgang mit Docker Compose-Dateien.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ImageOperationsGroup -.-> docker/images("List Images") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/version("Show Docker Version") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/run -.-> lab-555074{{"Wie man den docker compose config Befehl zur Validierung und Anzeige von Compose-Dateien verwendet"}} docker/ls -.-> lab-555074{{"Wie man den docker compose config Befehl zur Validierung und Anzeige von Compose-Dateien verwendet"}} docker/ps -.-> lab-555074{{"Wie man den docker compose config Befehl zur Validierung und Anzeige von Compose-Dateien verwendet"}} docker/images -.-> lab-555074{{"Wie man den docker compose config Befehl zur Validierung und Anzeige von Compose-Dateien verwendet"}} docker/info -.-> lab-555074{{"Wie man den docker compose config Befehl zur Validierung und Anzeige von Compose-Dateien verwendet"}} docker/version -.-> lab-555074{{"Wie man den docker compose config Befehl zur Validierung und Anzeige von Compose-Dateien verwendet"}} docker/build -.-> lab-555074{{"Wie man den docker compose config Befehl zur Validierung und Anzeige von Compose-Dateien verwendet"}} end

Eine grundlegende Compose-Datei validieren

In diesem Schritt lernen Sie, wie Sie eine grundlegende Docker Compose-Datei validieren. Bevor wir beginnen, müssen wir Docker Compose installieren, da es in dieser Umgebung nicht vorinstalliert ist.

Zuerst laden wir das Docker Compose-Binary herunter. Wir verwenden Version 1.29.2, eine stabile und weit verbreitete Version.

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Dieser Befehl lädt das Docker Compose-Binary aus dem offiziellen GitHub-Repository herunter und speichert es unter /usr/local/bin/docker-compose. Die Teile $(uname -s) und $(uname -m) erkennen automatisch Ihr Betriebssystem und die Architektur, um das korrekte Binary herunterzuladen.

Als nächstes müssen wir dem heruntergeladenen Binary Ausführungsrechte erteilen.

sudo chmod +x /usr/local/bin/docker-compose

Dieser Befehl macht den docker-compose-Befehl ausführbar.

Überprüfen wir nun die Installation, indem wir die Version anzeigen.

docker-compose --version

Sie sollten eine Ausgabe ähnlich zu docker-compose version 1.29.2, build 5becea4c sehen. Dies bestätigt, dass Docker Compose korrekt installiert wurde.

Erstellen wir nun eine einfache Docker Compose-Datei. Wir erstellen eine Datei namens docker-compose.yml in Ihrem ~/project-Verzeichnis.

nano ~/project/docker-compose.yml

Fügen Sie folgenden Inhalt zur Datei hinzu:

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Dies ist eine sehr einfache Docker Compose-Datei. Sie definiert einen einzelnen Dienst namens web, der das nginx:latest-Image verwendet und Port 80 auf dem Host mit Port 80 im Container verbindet.

Speichern Sie die Datei und beenden Sie den nano-Editor (Drücken Sie Strg + X, dann Y, dann Enter).

Bevor Sie die Compose-Datei ausführen, ist es ratsam, deren Syntax zu validieren. Docker Compose bietet hierfür den Befehl config.

docker-compose config

Wenn die Syntax Ihrer docker-compose.yml-Datei korrekt ist, gibt dieser Befehl die aufgelöste Konfiguration im YAML-Format aus. Bei Syntaxfehlern wird eine Fehlermeldung mit dem Problem angezeigt. Dies hilft Ihnen, Fehler frühzeitig zu erkennen, bevor Sie versuchen, Ihre Dienste zu erstellen oder auszuführen.

Die aufgelöste Konfiguration im YAML-Format anzeigen

Im vorherigen Schritt haben wir die Syntax unserer docker-compose.yml-Datei mit dem Befehl docker-compose config validiert. Standardmäßig gibt dieser Befehl die aufgelöste Konfiguration im YAML-Format aus. Dies ist nützlich, um die endgültige Konfiguration zu sehen, die Docker Compose verwenden wird, einschließlich aller Standardwerte oder Zusammenführungen aus mehreren Compose-Dateien.

Lassen Sie uns den Befehl erneut ausführen, um die Ausgabe zu sehen. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden, wo Sie die docker-compose.yml-Datei erstellt haben.

cd ~/project
docker-compose config

Sie sollten eine Ausgabe ähnlich dieser sehen:

services:
  web:
    build:
      context: /home/labex/project
    image: nginx:latest
    ports:
      - published: 80
        target: 80
version: "3.8"

Beachten Sie, dass die Ausgabe den build-Abschnitt mit dem context-Wert /home/labex/project enthält. Obwohl wir in unserer docker-compose.yml keinen build-Abschnitt explizit definiert haben, fügt Docker Compose einen Standard-Build-Kontext hinzu, der das Verzeichnis mit der Compose-Datei ist. Dies ist ein Beispiel dafür, wie docker-compose config die aufgelöste Konfiguration anzeigt, einschließlich Standardwerten.

Die Ansicht der aufgelösten Konfiguration im YAML-Format ist hilfreich für das Debugging und das genaue Verständnis, wie Docker Compose Ihre Datei interpretiert.

Die aufgelöste Konfiguration im JSON-Format anzeigen

Im vorherigen Schritt haben wir gesehen, wie docker-compose config standardmäßig die aufgelöste Konfiguration im YAML-Format ausgibt. Manchmal kann es nützlich sein, die Konfiguration im JSON-Format zu betrachten, insbesondere wenn Sie mit Tools oder Skripten arbeiten, die JSON verarbeiten.

Der Befehl docker-compose config verfügt über ein --format-Flag, mit dem Sie das Ausgabeformat festlegen können. Um die Ausgabe im JSON-Format zu erhalten, verwenden wir --format json.

Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

cd ~/project
docker-compose config --format json

Sie sollten die aufgelöste Konfiguration im JSON-Format in der Konsole ausgegeben sehen. Die Ausgabe wird etwa so aussehen (die genaue Formatierung kann leicht variieren):

{
  "services": {
    "web": {
      "build": {
        "context": "/home/labex/project"
      },
      "image": "nginx:latest",
      "ports": [
        {
          "published": 80,
          "target": 80
        }
      ]
    }
  },
  "version": "3.8"
}

Wenn Sie diese Ausgabe mit der YAML-Ausgabe aus dem vorherigen Schritt vergleichen, können Sie sehen, dass sie dieselbe Konfiguration darstellt, nur in einem anderen Datenformat. Beide Formate sind je nach Bedarf nützlich.

Die Anzeige der Konfiguration im JSON-Format kann besonders hilfreich sein, wenn Sie Docker Compose mit anderen Tools integrieren oder die Konfiguration programmatisch verarbeiten möchten.

Nur Servicenamen ausgeben

In diesem Schritt lernen wir, wie der Befehl docker-compose config verwendet wird, um nur die Namen der in unserer Compose-Datei definierten Services auszugeben. Dies kann nützlich sein, wenn Sie eine schnelle Liste der Services benötigen, ohne die vollständigen Konfigurationsdetails.

Der Befehl docker-compose config verfügt über ein --services-Flag, das genau dies bewirkt. Es analysiert die Compose-Datei und gibt nur die Servicenamen aus, jeweils in einer eigenen Zeile.

Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

cd ~/project
docker-compose config --services

Da unsere docker-compose.yml-Datei derzeit nur einen Service namens web enthält, wird die Ausgabe dieses Befehls sein:

web

Falls Sie mehrere Services in Ihrer Compose-Datei definiert hätten, würde jeder Servicename in einer neuen Zeile ausgegeben werden. Beispielsweise bei Services namens web, db und app würde die Ausgabe so aussehen:

web
db
app

Dieses Flag bietet eine praktische Möglichkeit, schnell alle in Ihrem Docker Compose-Projekt definierten Services aufzulisten.

Nur Image-Namen ausgeben

In diesem letzten Schritt lernen wir, wie der Befehl docker-compose config verwendet wird, um nur die Namen der Images auszugeben, die von den in unserer Compose-Datei definierten Services genutzt werden. Dies ist nützlich, um schnell zu sehen, von welchen Images Ihr Projekt abhängt.

Der Befehl docker-compose config verfügt über ein --images-Flag, das genau dies bewirkt. Es analysiert die Compose-Datei und gibt nur die Image-Namen aus, jeweils in einer eigenen Zeile.

Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

cd ~/project
docker-compose config --images

Da unsere docker-compose.yml-Datei das Image nginx:latest für den web-Service verwendet, wird die Ausgabe dieses Befehls sein:

nginx:latest

Falls Sie mehrere Services mit unterschiedlichen Images hätten, würde jeder Image-Name in einer neuen Zeile ausgegeben werden. Beispielsweise bei Services mit nginx:latest, mysql:5.7 und python:3.9 würde die Ausgabe so aussehen:

nginx:latest
mysql:5.7
python:3.9

Dieses Flag bietet einen schnellen Überblick über die Images, die für Ihr Docker Compose-Projekt benötigt werden.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Docker Compose durch Herunterladen der Binärdatei und Erteilen von Ausführungsberechtigungen installiert wird, sowie die Installation durch Überprüfung der Version verifiziert wird. Anschließend haben Sie eine grundlegende docker-compose.yml-Datei erstellt, die einen einfachen Web-Service mit dem Nginx-Image definiert. Abschließend haben Sie den Befehl docker-compose config verwendet, um die Syntax der Compose-Datei zu validieren und sicherzustellen, dass sie vor der Bereitstellung korrekt formatiert ist.