Zurück zum Blog

Installation von Docker Compose auf CentOS 7

Installation von Docker Compose auf CentOS 7

Die Dockerisierung hat den Bereitstellungs- und Automatisierungsprozess in der Softwareindustrie neu definiert. Seit ihrer Einführung hat das Docker-Team kontinuierlich daran gearbeitet, die automatisierte Bereitstellung nahtlos zu gestalten. Die Containerisierungstechnologie ermöglicht nicht nur eine schnelle Anwendungsentwicklung und Effizienz, sondern spart auch Zeit und mühsame Anstrengungen. Unschlagbare Funktionalitäten wie das Orchestrieren, Definieren und Ausführen von Multi-Container-Anwendungen machen Docker zu einer beliebten Wahl für Entwickler.

Docker-Container und -Images

Wenn Sie tiefer in Docker eintauchen möchten, ist es wichtig, die Grundlagen aufzufrischen. Zu verstehen, wie Docker funktioniert, kann knifflig sein, wenn Sie noch keine Erfahrung damit haben. In diesem Abschnitt werden wir einige Konzepte definieren, die für Anfänger unerlässlich sind. Wenn Sie glauben, mit diesen Konzepten vertraut zu sein, können Sie diesen Abschnitt gerne überspringen und mit dem nächsten fortfahren. Sie können auch einen Blick auf unseren umfassenden Leitfaden werfen, der die grundlegenden Docker-Konzepte erklärt.

  • Docker-Images

Docker-Images sind eine Sammlung von schreibgeschützten Dateien. Sobald Sie Docker-Images erstellt haben, können Sie diese nicht mehr ändern, obwohl das Löschen zulässig ist. Wir verwenden ein Docker-Image, um je nach Bedarf einen oder mehrere Docker-Container zu erstellen. Um die Anzahl der auf Ihrem System ausgeführten Images zu überprüfen, verwenden Sie den Befehl:

Wenn Sie Images aus einer Remote-Registry wie Docker Hub herunterladen, laden Sie Dateien und Ordner herunter. Um ein Image herunterzuladen, verwenden Sie den Befehl:

  • Docker-Container

Docker-Images sind die Vorlage für Docker-Container. Technisch gesehen ist ein Docker-Container eine Instanz eines Docker-Images. Stellen Sie sich vor, ein Docker-Image ist wie ein Elternteil, dann ist ein Docker-Container das Kind. Im Gegensatz zu Docker-Images, die Sie einmal erstellen können, können Sie mehrere Container mit einem einzigen Image erstellen. Um die Liste der auf Ihrem System ausgeführten Images zu überprüfen, verwenden Sie den Befehl:

Um einen Container herunterzuladen, verwenden Sie den folgenden Befehl:

  • Wie Docker-Images und -Container funktionieren

Docker-Images und -Container arbeiten Hand in Hand, um das Potenzial von Docker voll auszuschöpfen. Ein einzelner Container wird mithilfe des Docker-Images über den Befehl „run“ erstellt. Wenn Sie einen Docker-Container erstellen, wird eine neue Ebene namens „Container Layer“ erstellt. Die neu erstellte Ebene enthält die Anwendung und ihre Abhängigkeiten. Jeder von Ihnen erstellte Container verfügt über einen anderen beschreib- und lesbaren Container Layer, und alle im Docker-Container vorgenommenen Änderungen werden automatisch auf dem Container Layer reflektiert. Denken Sie daran: Wenn Sie sich entscheiden, einen Container zu löschen, verlieren Sie auch den Container Layer.

Sagen Sie Hallo zu Docker Compose

Docker Compose ist ein Container-Management-Tool, mit dem Sie alle Ihre Docker-Container in einer einzigen YAML-Datei konfigurieren und orchestrieren können. Das Starten, Anhalten und Erstellen von Verbindungen und Volumes zwischen Containern wird mit diesem Tool erleichtert.

  • Was macht Docker Compose?

Einfach ausgedrückt macht Docker Compose komplizierte Aufgaben einfacher, indem es Konflikte und organisatorische Probleme beseitigt. Es ermöglicht Benutzern, verschiedene Docker-Container zentral zu verwalten. Mit anderen Worten: Anstatt alle Dienste in einem großen Container zu haben, unterteilt Docker Compose einen Dienst in mehrere Dienste, sodass Benutzer mühelos auf sie zugreifen und sie verwalten können.

In dieser Anleitung führen wir Sie durch die Schritte zur Installation der aktuellen Version von Docker Compose zur Verwaltung von Multi-Container-Anwendungen auf CentOS 7. Wir werden auch einige grundlegende Befehle durchgehen, die Sie benötigen, um die Software erfolgreich zu nutzen.

  • So verwenden Sie Docker Compose

Die Verwendung von Docker Compose ist selbst für Anfänger extrem einfach. Sehen wir uns den dreistufigen Prozess an, der mit Docker Compose verbunden ist:

1. Build: Erstellen Sie zunächst Images im Dockerfile gemäß Ihren Projektanforderungen oder laden Sie sie aus der Registry herunter.

2. Definieren: Als Nächstes müssen Sie alle Komponentendienste in der compose.yml-Datei definieren.

3. Ausführen: Nach dem Definieren der Komponenten ist es an der Zeit, sie mit dem Befehl docker-compose auszuführen.

Voraussetzungen

Bevor wir mit der Installation von Docker Compose auf Ihrem CentOS-Server fortfahren, stellen Sie sicher, dass Sie Folgendes haben:

Sie sind nun startklar. Befolgen Sie als Nächstes die folgenden Schritte, um Docker Compose auf CentOS 7 zu installieren.

Schritt 1: Installieren von Docker Compose

Um die neueste Version von Docker Compose zu erhalten, folgen Sie den Anweisungen in der Docker-Dokumentation und laden Sie die Binärdateien herunter von Docker’s GitHub-Repository. Überprüfen Sie, ob Sie die neueste Version der Software haben, indem Sie den folgenden Befehl ausführen:

Um die Binärdatei ausführbar zu machen, legen Sie die folgenden Berechtigungen fest:

Suchen Sie als Nächstes nach Ihrer Version, um zu überprüfen, ob die Installation erfolgreich war:

Der folgende Code gibt die installierte Version aus:

docker-compose --version

Sie können dann ein “Hello World”-Beispiel mit dem von Ihnen installierten Docker Compose ausführen.

Schritt 2: Verwenden von Docker Compose zum Ausführen eines Containers

Es gibt ein “Hello World”-Image in Docker Hub, der öffentlichen Docker-Registry, das für Demonstrations- und Testzwecke verwendet werden kann. Es zeigt, wie man einen Container mit Docker Compose mit minimaler Konfiguration ausführt. Zuerst müssen Sie ein Verzeichnis für unsere YAML-Datei erstellen:

Wechseln Sie als Nächstes in dieses Verzeichnis:

Erstellen Sie dann mit Ihrem bevorzugten Texteditor die YAML-Datei. In diesem Tutorial verwenden wir Vi:

Drücken Sie i, um in den Einfügemodus zu gelangen, und geben Sie dann Folgendes in die Datei ein:

In den Containernamen wird die erste Zeile integriert. Die zweite Zeile weist das Programm an, welches Image es zur Erstellung des Containers verwenden soll. docker-composeup sucht nach einem lokalen Image mit dem Namen hello-world, um zu prüfen, ob es verfügbar ist, wenn Sie den Befehl eingeben. Um den Einfügemodus zu verlassen, drücken Sie ESC. Geben Sie dann :x ein und drücken Sie ENTER, um die Datei zu speichern und zu beenden. Der Befehl docker images kann verwendet werden, um manuell nach Images auf Ihrem Rechner zu suchen:

Es erscheinen nur die Spaltenüberschriften, wenn überhaupt keine lokalen Images vorhanden sind:

Docker Compose on CentOS 6

Um den Container zu erstellen, führen Sie diesen Befehl aus, während Sie sich noch im Verzeichnis /hello-world befinden:

Wenn Sie den Befehl zum ersten Mal ausführen und kein lokales Image mit dem Namen hello-world vorhanden ist, wird es aus dem Docker Hub-Repository heruntergeladen:

sudo docker-compose up

Um sicherzustellen, dass die Installation funktioniert, Docker Compose zieht das Image, erstellt einen Container, hängt ihn an und führt das hello-Programm aus:

hello program

Danach wird ein Ausdruck mit einer Beschreibung der durchgeführten Schritte angezeigt:

Docker Compose on CentOS 3

Wenn hello seine Aufgabe erfüllt hat, wird der Container heruntergefahren und der Befehl wird nicht mehr im Container ausgeführt. Bei der Betrachtung aktiver Prozesse werden Spaltenüberschriften angezeigt. Der Container hello-world wird jedoch nicht aufgelistet, da er derzeit nicht in Betrieb ist:

sudo docker ps

Um alle Container anzuzeigen, nicht nur die aktuellen, verwenden Sie das -a-Flag:

Docker Compose 2

Nachdem Sie nun versucht haben, einen Container auszuführen, können Sie fortfahren, um einige der grundlegenden Docker Compose-Befehle kennenzulernen.

Schritt 3: Docker Compose-Befehle

Um Ihnen den Einstieg in Docker Compose zu erleichtern, geht dieser Abschnitt auf die grundlegenden Befehle ein, die vom Tool docker-compose bereitgestellt werden. docker-compose ist ein Befehl, der verzeichnisweise arbeitet. Indem Sie ein Verzeichnis für jeden Container und eine docker-compose.yml-Datei pro Verzeichnis erstellen, können Sie viele Gruppen von Docker-Containern auf demselben Computer ausführen.

Bisher haben Sie Docker Compose selbstständig ausgeführt. Sie können es ausschalten, indem Sie Strg-C drücken. Dadurch kann das Terminalfenster Debug-Meldungen anzeigen. Es ist jedoch ratsam, docker-compose im Produktionsbetrieb als Dienst auszuführen. Die Option -d kann als einfache Möglichkeit verwendet werden, dies zu erreichen:

Jetzt wird docker-compose in den Hintergrund verschoben. Ihre Gruppe von Docker-Containern (entweder angehalten oder laufend) kann mit dem folgenden Befehl verwaltet werden:

Der State eines Containers wird als Exited gemeldet, wenn er angehalten ist, wie im folgenden Beispiel zu sehen:

Docker Compose on CentOS 5

Ein Container, der gerade läuft, zeigt Folgendes an:

Sie können alle laufenden Docker-Container im selben Verzeichnis wie die docker-compose.yml-Datei beenden, die Sie zum Starten der Docker-Gruppe verwendet haben:

Hinweis: Wenn Sie die Container gewaltsamer beenden müssen, steht auch docker-compose kill zur Verfügung.

In einigen Fällen können Docker-Container ihre alten Daten intern speichern. Verwenden Sie den Befehl rm, um alle Container aus Ihrer Containergruppe zu entfernen, wenn Sie von vorne beginnen möchten:

Das Ausführen eines dieser Befehle aus einem anderen Verzeichnis als dem, in dem sich der Docker-Container und die .yml-Datei befinden, führt zu einer Fehlermeldung:

In diesem Abschnitt haben wir die Grundlagen der Bearbeitung von Containern mit Docker Compose behandelt. Wie besprochen, können Sie im folgenden Abschnitt auf das Docker-Dateisystem zugreifen und Befehle über eine Eingabeaufforderung im Container ausführen, wenn Sie zusätzliche Kontrolle über Ihre Container benötigen.

Schritt 4: Zugriff auf das Docker-Container-Dateisystem

Es ist möglich, eine Eingabeaufforderung in einem Container auszuführen und auf das Dateisystem des Containers zuzugreifen, indem Sie docker exec verwenden, ein Befehlszeilenwerkzeug. Führen Sie beispielsweise “Hello World” aus und sehen Sie, wie lange es dauert, bis der Befehl docker exec abgeschlossen ist. Für dieses Tutorial kann das Docker Hub-Image von Nginx verwendet werden. Erstellen Sie ein neues Verzeichnis namens nginx und wechseln Sie hinein:

Sie sollten nun eine docker-compose.yml-Datei haben, die Sie in einem Texteditor öffnen können:

Fügen Sie dann in der Datei Folgendes hinzu:

Es ist an der Zeit, die Anwendung zu schließen. Um den Nginx-Container im Hintergrund zu starten, verwenden Sie den folgenden Befehl:

Docker Compose on CentOS 1

Docker Compose wird das Nginx-Image herunterladen und den Container im Hintergrund ausführen. Um fortzufahren, müssen Sie die CONTAINER ID des Containers eingeben.  Sie können alle derzeit laufenden Container mit dem folgenden Befehl anzeigen:

Sie sehen Folgendes:

 Docker Compose on CentOS 4

Wenn Sie das Dateisystem in diesem Container mithilfe von docker exec ändern möchten, würden Sie die eindeutige ID des Containers verwenden (in diesem Fall f139d0d78ca7) um eine Shell innerhalb des Containers zu erstellen:

sudo docker exec -it

Ein interaktives Terminal kann mit der Option -t geöffnet werden, während /bin/bash dem Container eine Bash-Shell zur Verfügung stellt. Dies ist die Bash-Eingabeaufforderung, die Sie danach für den Container sehen:

In Ihrem Container finden Sie eine Eingabeaufforderung. Ein Neustart des Containers überschreibt alle von Ihnen vorgenommenen Änderungen, es sei denn, Sie arbeiten in einem Verzeichnis, das als Teil eines Datenvolumens gespeichert wurde. Wenn Sie an die Arbeit mit Linux-Kommandozeilen-Tools gewöhnt sind, sollten Sie wissen, dass die meisten Docker-Images mit den einfachsten Linux-Installationen erstellt werden.

Fazit

Wir haben Sie durch die Schritte zur Installation der aktuellen Version von Docker Compose zur Verwaltung von Multi-Container-Anwendungen auf CentOS 7 geführt. Die Fähigkeit von Docker Compose, eine große Anzahl von Containern gleichzeitig zu starten und herunterzufahren, ist beeindruckend. Der Übergang von Vorlagen zu Anwendungen dauert nur wenige Minuten. Wenn Ihre Arbeit also das gleichzeitige Ausführen mehrerer Container beinhaltet, ist Docker Compose eine hervorragende Option. Dennoch ist es keine Universallösung. Je nach Ihren speziellen Anforderungen finden Sie möglicherweise auch bessere Optionen, wie zum Beispiel Kubernetes.

Um die Möglichkeiten von Docker Compose weiter zu erkunden, können Sie sich diese Tutorials von unserem Blog:

Viel Spaß beim Computing!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.