GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Erste Schritte mit Docker Compose unter Linux

Docker Compose ist ein Tool zum Definieren und Ausführen von Multi-Container-Docker-Anwendungen in Linux. Mit Compose verwenden wir eine YAML-Datei, um die Dienste unserer Anwendung zu konfigurieren. Und dann erstellen und starten wir alle Dienste aus der Konfiguration mit einem einzigen Befehl. Hier ist eine einfache grafische Darstellung, die zeigt, wie Docker Compose funktioniert.

Funktionsweise von Docker Compose – Eine grafische Darstellung

Docker Compose ist im Grunde ein dreistufiger Prozess:

  1. Zuerst müssen wir die Anwendungsumgebung mit einem Dockerfile definieren damit es wiederverwendet werden kann.
  2. Zweitens definieren wir die Dienste, aus denen die App besteht, in docker-compose.yml damit sie zusammen in einer isolierten Umgebung ausgeführt werden können.
  3. Schließlich führen wir docker-compose up aus command und Compose starten und führen Ihre gesamte Anwendung aus.

Erste Schritte mit Docker Compose unter Linux

Docker Compose kann auf zwei Arten installiert werden. Sie finden die Installationsanweisungen im Abschnitt "Docker Compose installieren" in den folgenden Links.

  • So installieren Sie Docker in Ubuntu
  • So installieren Sie Docker in CentOS

Überprüfen Sie nach der Installation die Version von Docker Compose mit folgenden Befehlen:

# docker-compose -version

Oder,

# docker-compose -v

Oder,

# docker-compose --version

Docker-Compose-Version prüfen

Um Hilfe zu erhalten, führen Sie einfach Folgendes aus:

# docker-compose -help

Dieser Befehl listet die Befehle auf, die Docker Compose ausführen kann.

docker compose-Hilfe

Nehmen wir nun als Beispiel eine einfache Docker-Compose-Datei. Hier ist der Inhalt meiner Compose-Datei.

Docker-Beispiel-Compose-Datei

Die obige Docker-Compose-Datei ist eine absolute Mindestdatei, um den grundlegenden Inhalt in der Compose-Datei zu verstehen.

Wir können die Gültigkeit der Datei mit dem Befehl überprüfen:

# docker-compose config

Überprüfen Sie die Gültigkeit der Docker Compose-Datei

Wenn Sie in der Docker-Compose-Datei eine falsche Version angeben, erhalten Sie eine Fehlermeldung.

Docker-Compose-File-Fehlermeldung

Lassen Sie uns nun die Compose-Datei mit dem Befehl ausführen:

# docker-compose up -d

Es startet alle Dienste mit einem einzigen Befehl.

Docker Compose ausführen

Um die laufenden Container aufzulisten, die von der Compose-Datei erstellt wurden, führen Sie Folgendes aus:

# docker-compose ps

Laufende Docker-Container auflisten

Wir können die Anwendung jederzeit mit dem folgenden Befehl herunterfahren:

# docker-compose down

Stoppen Sie Docker-Container

Wir können nginx auch einen anderen Port zuweisen, zum Beispiel 8181.

Definieren Sie dazu einfach den Port in der Compose-Datei, wie in der folgenden Abbildung gezeigt.

Port nginx-Container definieren

Jetzt ist Nginx Port 8181 ausgesetzt. Lassen Sie uns den Container starten und prüfen, ob Nginx auf Port 8181 läuft.

Nginx-Container starten

Öffnen Sie den Browser und überprüfen Sie, ob er auf Port 8181 ausgeführt wird.

Testen Sie den nginx-Container im Webbrowser

Wenn Sie den Dienst skalieren möchten, können Sie dies mit dem Befehl:

tun
# docker-compose up -d --scale database=3

Skalieren Sie Dienste mit docker compose

Um laufende Dienste anzuzeigen, führen Sie Folgendes aus:

# docker-compose top

Zeigen Sie laufende Dienste mit docker compose

an

Aufhören, anfangen. Starten Sie den gesamten Dienst auf einmal neu, die Befehle wären:

# docker-compose stop
# docker-compose start
# docker-compose restart

Wir können Protokolle der Dienste mit dem Befehl anzeigen:

# docker-compose logs

Protokolle der Dienste anzeigen

Vernetzung in docker-compose

Docker Compose richtet standardmäßig ein einziges Netzwerk für Ihre App ein. Jeder Container tritt dem Standardnetzwerk bei und Container können über dieses Standardnetzwerk kommunizieren.

Sie können jedoch mit Compose ein neues Netzwerk erstellen, wenn Sie das Standardnetzwerk nicht möchten.

Für diese Anleitung verwende ich die folgenden drei Dateien:

  1. Dockerfile
  2. docker-compose.yml
  3. server.py

Hier ist der Inhalt von Dockerfile:

Inhalt der Docker-Datei

Inhalt von docker-compose.yml:

Inhalt der Docker-Compose-Datei

Inhalt von server.py:

Inhalt der Anwendungsdatei

Erstellen Sie nun das Image mit dem Befehl:

# docker-compose build

Sobald der Build abgeschlossen ist, sehen Sie die folgende Ausgabe:

Docker-Image erstellen

Wie Sie sehen können, wurde das Image erfolgreich erstellt. Sie können es mit folgendem Befehl überprüfen:

# docker images

Docker-Bilder auflisten

Wie Sie in der obigen Ausgabe sehen, wird ein Docker-Image namens image1 erstellt.

Führen Sie nun die Compose-Datei aus:

# docker-compose up -d

Docker-Compose-Datei ausführen

Überprüfen Sie mit dem Befehl:

, ob das neue Netzwerk erstellt wurde oder nicht
# docker network ls

Überprüfen Sie das Docker-Netzwerk

Aus dem obigen Screenshot können wir ein neues Netzwerk mit dem Namen dc_network_my-network bestätigen wurde erstellt.

Lassen Sie uns überprüfen, ob der Container läuft oder nicht, indem Sie den Befehl „docker ps“ verwenden:

# docker ps

docker ps-Befehlsausgabe

Ja, der Container läuft!

Führen Sie schließlich die Anwendungscodedatei (server.py) mit dem Curl-Befehl aus:

# curl localhost:15001

Oder,

# curl 10.26.35.244:15001

Anwendungsausgabe

Wir erhalten eine Ausgabe - Hello World from node 1! die in die server.py-Datei geschrieben wird. Das heißt, es funktioniert!

Empfohlene Lektüre:

  • Erläuterung von Docker-Netzwerkkonzepten
  • Erklärung von Docker-Volumes mit Beispielen
  • So aktualisieren Sie laufende Docker-Container automatisch
  • ctop – Ein Befehlszeilen-Überwachungstool für Linux-Container
  • Portainer – Eine einfachste Art, Docker zu verwalten
  • PiCluster – Eine einfache, webbasierte Docker-Verwaltungsanwendung
  • Dockly – Docker-Container vom Terminal aus verwalten

Über den Autor:

Dhruv Tiwari ist ein DevOps-Ingenieur, der es liebt, Dinge zu automatisieren, mit Linux in großem Maßstab zu arbeiten und von dem Tag zu träumen, an dem Systeme intelligent genug sind, um sich nie mehr bei einer Linux-Box anmelden zu müssen. Reise von CI/CD vom Quellcode über die Codebereitstellung bis zur Produktion.


Docker
  1. Erste Schritte mit Linux-Firewalls

  2. Erste Schritte mit dem Linux-tac-Befehl

  3. Erste Schritte mit PiFlash:Starten Sie Ihren Raspberry Pi unter Linux

  4. Erste Schritte mit PostgreSQL unter Linux

  5. Erste Schritte mit SSH unter Linux

Erste Schritte mit dem Linux-Betriebssystem

Docker-Tutorial – Erste Schritte mit Docker unter Linux

Vagrant-Tutorial – Erste Schritte mit Vagrant unter Linux

Erste Schritte mit VirtualBox unter Linux – Teil 1

Erste Schritte mit Flutter auf dem Linux-Desktop

Tutorial „Erste Schritte mit Azure Docker“.