Tutorial zur Netzwerknutzung Offizielle Website docker-compose.yml Referenzdokument: Compose-Datei Version 3 Referenz Genauere chinesische Übersetzung: Referenz zur Compose-Dateiversion 3 Netzwerke werden üblicherweise für Clusterdienste verwendet, sodass verschiedene Anwendungen im selben Netzwerk ausgeführt werden können und so das Problem der Netzwerkisolation gelöst wird. Diese Anwendung ist bei Schwarmbereitstellungen sehr verbreitet. In diesem Artikel wird darauf jedoch nicht eingegangen. Im Allgemeinen werden für Clusterdienste häufig Docker-Compose.yml-Dokumente verwendet, um Anwendungsdienste schnell zu orchestrieren und bereitzustellen. Die offizielle Website bietet die folgenden Verwendungsszenarien und -methoden: 1. docker-compose.yml ohne explizite Netzwerkdeklaration Erstellen Sie beispielsweise docker-compose.yml im Version: '3' Leistungen: Webseite: Magier: nginx:latest Containername: Web hängt ab von: -db Häfen: - „9090:80“ Links: -db db: Bild: MySQL Containername: db1234567891011121314 Nach dem Starten der Container mit $ Docker-Netzwerk ls NETZWERK-ID-NAME TREIBER-UMFANG 6f5d9bc0b0a0 app_default Brücke lokal 0fb4027b4f6d Brücke Brücke lokal 567f333b9de8 Docker-Compose_Default-Brücke lokal bb346324162a Host Host lokal a4de711f6915 mysql_app Brücke lokal f6c79184ed27 mysql_default Brücke lokal 6358d9d60e8a keine null lokal 12345678910 2. Das Schlüsselwort „networks“ gibt ein benutzerdefiniertes Netzwerk an Beispielsweise definiert die folgende Datei docker-compose.yml die Front- und Backnetzwerke und implementiert die Netzwerkisolation. Der Proxy und die Datenbank können nur über die App kommunizieren. Unter diesen kann Version: '3' Leistungen: Proxy: Erstellen: ./Proxy Netzwerke: - Vorderseite App: Erstellen: ./app Netzwerke: - Vorderseite - zurück db: Bild: postgres Netzwerke: - zurück Netzwerke: Front: # Verwenden Sie einen benutzerdefinierten Treiber Treiber: benutzerdefinierter Treiber-1 zurück: # Verwenden Sie einen benutzerdefinierten Treiber, der spezielle Optionen akzeptiert Treiber: benutzerdefinierter Treiber-2 Treiberoptionen: foo: "1" Balken: "2"123456789101112131415161718192021222324252627 Es ist erwähnenswert, dass hier zwei Netzwerke definiert sind, Back und Front. Es scheint, dass ihre Namen als Back und Font definiert sind, aber Sie können sie mit dem Befehl 3. Konfigurieren Sie das Standardnetzwerk Version: '2' Leistungen: Webseite: bauen: . Häfen: - "8000:8000" db: Bild: postgres Netzwerke: Standard: # Verwenden Sie einen benutzerdefinierten Treiber Treiber: custom-driver-11234567891011121314 4. Nutzen Sie ein vorhandenes Netzwerk Netzwerke: Standard: extern: Name: mein-bereits-vorhandenes-Netzwerk1234 Aufgetretene Probleme Nach dem Erlernen des oben Gesagten ist der Autor bereit, sein eigenes Projekt in die Praxis umzusetzen. Mein Projekt enthält zwei docker-compose.yml-Dateien und verwendet die Darunter wird eine docker-compose.yml verwendet, um den MySQL-Dienst zu starten, der sich im Verzeichnis Version: "3" Leistungen: Datenbankmaster: Bild: Master/MySQL:neueste Containername: dbmaster Häfen: - „3308:3306“ Bände: - $HOME/Arbeit/Daten/dbmaster:/var/lib/mysql Umfeld: MYSQL_ROOT_PASSWORD: Master Protokollierung: Treiber: "JSON-Datei" Optionen: maximale Größe: „1000k“ Max-Datei: "20" Netzwerke: - App Datenbanksklave: Bild: Slave/MySQL:neueste Containername: dbslave Häfen: - „3309:3306“ hängt ab von: -dbmaster Bände: – $HOME/Arbeit/Daten/dbslave:/var/lib/mysql Umfeld: MYSQL_ROOT_PASSWORD: Sklave Protokollierung: Treiber: "JSON-Datei" Optionen: maximale Größe: „1000k“ Max-Datei: "20" Links: -dbmaster Netzwerke: - App Netzwerke: Standard: extern: Name: app12345678910111213141516171819202122232425262728293031323334353637383940414243 Zum Starten des Serviceprogramms wird eine weitere Datei docker-compose.yml verwendet, die sich im Verzeichnis Version: "3" Leistungen: Webseite: Bild: nginx:latest Containername: Web hängt ab von: -Wolke gehen Häfen: - „9090:80“ Bände: – $HOME/Work/docker/docker-compose/nginx/conf.d:/etc/nginx/conf.d Links: -Wolkegot Protokollierung: Treiber: "JSON-Datei" Optionen: maximale Größe: „1000k“ Max-Datei: "20" Netzwerke: - App Cloudgo: Bild: cloudgo:latest Containername: Cloudgo Häfen: - „8080:8080“ Protokollierung: Treiber: "JSON-Datei" Optionen: maximale Größe: „1000k“ Max-Datei: "20" externe_links: -dbmaster -dbSklave Netzwerke: - App Netzwerke: App: extern: true123456789101112131415161718192021222324252627282930313233343536373839 Ich habe beschlossen, ein vorab erstelltes Netzwerk zu verwenden und sie dann diesem bereits erstellten Netzwerk hinzuzufügen, um die Kommunikation zu ermöglichen. Dazu habe ich den folgenden Befehl ausgeführt: $ Docker-Netzwerk erstellt App1 Starten Sie anschließend die Ausführung der vorbereiteten Datei docker-compose.yml. Führen Sie zuerst die Konfigurationsdatei aus, um MySQL zu starten. Das Ergebnis ist wie folgt: $ Docker-Compose nach oben FEHLER: Der Dienst „dbmaster“ verwendet ein nicht definiertes Netzwerk „app“12 Es wurde erstellt, meldet aber immer noch einen Fehler, der besagt, dass das Netzwerk nicht definiert ist. Ich habe versucht, den Namen in mysql_app zu ändern, aber es wird immer noch dieselbe Fehlermeldung angezeigt. Letztendlich wurde bewiesen, dass dieser Ansatz nicht durchführbar ist. In der offiziellen Dokumentation wurden bis heute keine Beispiele dafür gefunden. Daher wurde schließlich entschieden, die Netzwerkkonfiguration in der ersten Datei docker-compose.yml wie folgt zu ändern: Netzwerke: mysql_app: Treiber: bridge123 Definieren Sie in dieser Datei ein Netzwerk zur späteren Verwendung. Die Änderung ist hier abgeschlossen. Die gleiche Änderung muss an anderen Stellen in der Datei vorgenommen werden, an denen auf das Netzwerk verwiesen wird. Gleiches gilt auch für die zweite Datei. Andere Verwendungen Verwenden Sie Aliase anstelle von Links Das allgemeine Verwendungsformat ist wie folgt: Leistungen: einige Dienste: Netzwerke: irgendein Netzwerk: Aliase: -alias1 -alias3 anderes Netzwerk: Aliase: -alias212345678910 Im folgenden Beispiel kann mein Version: '2' Leistungen: Webseite: hängt ab von: - Arbeiter Netzwerke: - neu Arbeitnehmer: hängt ab von: -db Netzwerke: - Vermächtnis db: Bild: MySQL Netzwerke: neu: Aliase: - Datenbank Vermächtnis: Aliase: -mysql Netzwerke: neu: veraltet:123456789101112131415161718192021222324252627 Derzeit ist für die direkte Verwendung von depends_on kein Link mehr erforderlich. Wenn der Worker auf die Datenbank zugreifen muss, kann er direkt mysql:port verwenden. Die wichtigsten Punkte bei der Nutzung von Netzwerken sind: Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Vue-Beispielcode mit dem Animationseffekt „Übergangskomponente“
>>: MySQL5.6.31 winx64.zip Installations- und Konfigurationstutorial
In diesem Artikel wird hauptsächlich erläutert, w...
Die Beziehung zwischen Tomcat-Protokollen Ein Bil...
Ich möchte nur eine kleine Sache machen, die Winf...
Vorwort Die logische Datenträgerverwaltung von lv...
Inhaltsverzeichnis Vorwort Das Prinzip der asynch...
Kürzlich hat das WeChat Mini-Programm Anpassungen...
Inhaltsverzeichnis Einführung in FTP, FTPS und SF...
1. IE-Browsermodus Hack-Logo 1. CSS-Hack-Logo Code...
Inhaltsverzeichnis Der Unterschied zwischen Hash ...
Kürzlich stieß ich auf eine Webseite, die zwar Bil...
Die Hauptkonfigurationsdatei von Nginx ist nginx....
Inhaltsverzeichnis Vorwort 1. Installation 1. Dow...
In diesem Artikelbeispiel wird der spezifische Co...
Als häufig verwendete Datenbank erfordert MySQL v...
Inhaltsverzeichnis 1. Implementierung des Zählers...