Lösen Sie das Problem der Containerverwaltung mit Docker Compose

Lösen Sie das Problem der Containerverwaltung mit Docker Compose

Im Docker-Design führt ein Container nur eine Anwendung aus. Die meisten der aktuellen Anwendungssysteme können jedoch nicht aus nur einer Anwendung bestehen. Obwohl die Methoden zum Verbinden und Austauschen von Daten zwischen Containern bereits zuvor erwähnt wurden, können diese Methoden tatsächlich zum Erstellen einer Containergruppe für ein vollständiges Anwendungssystem verwendet werden. Allerdings müssen viele Befehle ausgeführt werden und die Beziehungen zwischen vielen Anwendungen und Containern müssen berücksichtigt werden. Docker Compose ist darauf ausgelegt, diese komplexen Vorgänge zu lösen.

Lösen von Containerverwaltungsproblemen

Nehmen wir das einfachste Beispiel: Wenn wir einen MySQL-Container und einen Redis-Container für unseren Anwendungscontainer vorbereiten möchten, müssen wir bei jedem Start zuerst den MySQL-Container und den Redis-Container starten und dann den Anwendungscontainer ausführen. Vergessen Sie beim Erstellen des Anwendungscontainers nicht, das Containernetzwerk mit dem MySQL-Container und dem Redis-Container zu verbinden, damit die Anwendung sich mit ihnen verbinden und Daten austauschen kann.

Das reicht nicht. Wenn wir den Container auf verschiedene Arten konfiguriert haben, sollten wir die Befehle zum Erstellen und Konfigurieren des Containers besser speichern, damit wir sie beim nächsten Mal direkt verwenden können.

Wenn wir möchten, dass dieses System nahtlos wechselt, wie Docker Run und Docker RM, wird es noch problematischer. Möglicherweise müssen wir einige Skripte schreiben, um nicht im Thread-Ball der Befehle gefangen zu sein.

Tatsächlich fehlt im Kern noch etwas zur Verwaltung von Containerkombinationen.

Docker Compose

Docker Compose: Definieren und führen Sie Software in mehreren Containern aus. In Docker Compose werden alle Anwendungen und entsprechenden Container, die sich auf das Anwendungssystem beziehen, gemäß einer Konfigurationsdatei konfiguriert und dann gemäß den von Docker Compose bereitgestellten Befehlen gestartet, wodurch die oben erwähnten komplexen Probleme zwischen mehreren Containern gelöst werden können. Docker Compose kann als Festigung des Betriebsmodus und der Konfiguration mehrerer Container verstanden werden, ähnlich der Rolle von Dockerfile für Images.

Installieren Sie Docker Compose

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

#Berechtigungen festlegen chmod +x /usr/local/bin/docker-compose

#Informationen zur installierten Docker-Compose-Version anzeigen

Grundlegende Verwendung von Docker Compose

Der Kern von Docker Compose ist seine Konfigurationsdatei, eine Datei, die auf dem YAML-Format basiert. So wie Dockerfile den Namen Dockerfile als Standarddateinamen für die Image-Build-Definition verwendet, hat auch die Docker Compose-Konfigurationsdatei einen Standarddateinamen docker-compose.yml .
Ein einfacher Konfigurationsinhalt

Version: '3'
Leistungen:
	Webanwendung:
		Erstellen: ./image/webapp
		Häfen:
			- "5000:5000"
		Bände:
			- ./Code:/Code
			-logvolume:/var/log
		Links:
			-mysql
			- Redis
	Redis:
		Bild: redis:3.2
	MySQL:
		Bild:mysql:5.7
		Umfeld:
			-MYSQL_ROOT_PASSWORD=mein-geheimes-Passwort
Bände:
	Protokollvolumen: {}

Eine Docker Compose-Konfigurationsdatei kann eine Menge Inhalt enthalten, von der detaillierten Steuerung jedes Containers bis zur Definition von Netzwerken, Datenvolumen usw.

version ist die Versionsnummer von Docker Compose, die neueste ist 3. services sind der Kern der Konfiguration und definieren die Details des Containers. Jeder Dienst stellt die Konfiguration eines Anwendungsclusters dar.

Starten und Stoppen

Start-up
docker-compose up erstellt alle gemäß der Konfigurationsdatei konfigurierten Container, Netzwerke, Datenträger usw. und startet sie. Ähnlich wie der Befehl docker run werden beide im Vordergrund gestartet. Wenn Sie es als Daemon starten möchten, müssen Sie zusätzlich -d hinzufügen.

docker-compose up -d

docker-compose up erkennt die Datei docker-compose.yml standardmäßig im Verzeichnis, in dem sich die aktuelle Konsole befindet. Wenn Sie das Verzeichnis angeben möchten, können Sie den Befehl -f verwenden, und wenn Sie den Projektnamen angeben möchten, können Sie den Befehl -t verwenden.

docker-compose -f ./compose/docker-compose.yml -p meineapp up -d

stoppen
Mit docker-compose down werden alle Container gestoppt und gelöscht, wobei auch Konfigurationen wie das Netzwerk gelöscht werden. Dies bedeutet, dass fast alle Effekte dieses Docker Compose-Projekts aus Docker entfernt werden.

Container-Befehle

Diese Befehle ähneln den Befehlen, die zum Bedienen eines einzelnen Containers in Docker Engine verwendet werden. Sehen wir uns einige gängige Befehle an.
Wenn wir in Docker Engine die Ausgabe des Hauptprozesses im Container anzeigen möchten, können wir den Befehl docker logs verwenden. Da die unter Docker Compose ausgeführten Dienste automatisch von Docker Compose benannt werden, müssen wir, wenn wir docker logs direkt verwenden, zuerst den Namen des Containers herausfinden, was offensichtlich etwas mühsam ist. Wir können den Befehl docker-compose logs direkt verwenden, um diese Aufgabe abzuschließen.

Docker-Compose-Protokolle Nginx

Ebenso gibt es in Docker Compose mehrere ähnliche Befehle, mit denen ein oder mehrere Dienste einzeln gesteuert werden können.
Durch docker-compose create , docker-compose start und docker-compose stop können wir ähnliche Effekte wie mit docker create , docker start und docker stop erzielen, außer dass die Objekte der Operation von Containern in Docker Engine in Dienste in Docker Compose geändert werden.

Dies ist das Ende dieses Artikels über die Verwendung von Docker Compose zur Verwaltung von Containern. Weitere Informationen zur Verwaltung von Containern mit Docker Compose finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierter Prozess zum Erstellen eines NFS-Servers mithilfe des NFS-Ganesha-Image von Docker
  • Detaillierte Erläuterung des Prozesses der Verwendung von GPU in Docker

<<:  Detaillierte Erläuterung der MySQL-Filterreplikationsideen

>>:  Vue-Tutorial zur erweiterten Verwendung dynamischer Komponenten

Artikel empfehlen

So fügen Sie schnell 10 Millionen Datensätze in MySQL ein

Ich habe gehört, dass es eine Interviewfrage gibt...

Zusammenfassung gängiger SQL-Anweisungen in MySQL

1. MySQL-Exportdatei: SELECT `pe2e_user_to_compan...

Zusammenfassung der Lastausgleichsmethoden von Nginx

Um den Lastenausgleich zu verstehen, müssen Sie s...

Zusammenfassung der Wissenspunkte zum Ereignismodul in Node.js

Durch das Studium und die Anwendung von Node wiss...

MySQL ruft die aktuelle Datums- und Uhrzeitfunktion ab

Holen Sie sich das aktuelle Datum + die aktuelle ...

Häufige JavaScript-Speicherfehler und Lösungen

Inhaltsverzeichnis 1. Zeitüberwachung 2. Ereignis...

HTML (CSS-Stilspezifikation) muss lauten

CSS-Stilspezifikationen 1. Klassenauswahl 2. Tag-...

So testen Sie die maximale Anzahl von TCP-Verbindungen in Linux

Vorwort Es besteht ein Missverständnis bezüglich ...

So installieren Sie mehrere mysql5.7.19 (tar.gz)-Dateien unter Linux

Informationen zur ersten Installation der MySQL-5...

Bringen Sie Ihnen kostenlos bei, wie Sie AWS-Serverressourcen nutzen

AWS – Amazons Cloud-Computing-Serviceplattform Ic...

mysql löst zeitzonenbezogene Probleme

Vorwort: Bei der Verwendung von MySQL können Prob...