Detaillierte Beispiele für Docker-Compose-Netzwerke

Detaillierte Beispiele für Docker-Compose-Netzwerke

Ich habe heute mit den Netzwerkeinstellungen unter Docker experimentiert und den Vorgang aufgezeichnet, um ihn später nicht zu vergessen.

(System: Centos 7.4, Docker-Version: 18.03.1-ce, Docker-Compose-Version 1.18.0)

Katze docker-compose.yml 
Version: '3'
Leistungen: 
 Prüfung1:
  Bild: busybox:latest # Das Bild ist busybox
  Einstiegspunkt: #Führen Sie den Top-Befehl aus, nachdem der Container gestartet wurde, damit der Container nicht sofort beendet werden kann - top
  Netzwerke:
   Backend: # Verwenden Sie das angegebene Netzwerk-Backend und legen Sie den Netzwerkalias auf test1 fest.
    Aliase: # Nachdem Sie den Netzwerkalias festgelegt haben, können Sie test1 in anderen Containern anpingen, um auf den Container - test1 - zuzugreifen

 Prüfung2:
  Bild: busybox:latest
  Einstiegspunkt:
   - Spitze
  Netzwerke:
   Backend:
    Aliase:
     -Test2

Netzwerke:
 Backend:

Start-up

docker-compose up -d

Docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
4d05ceb2088d busybox:latest "top" vor 5 Sekunden Up 4 Sekunden ibaboss_test2_1
f4ccafa24664 busybox:latest "top" vor 5 Sekunden Up 4 Sekunden ibaboss_test1_1

docker exec -it 4d05ceb2088d /bin/sh
/# Ping-Test1
PING-Test1 (172.19.0.2): 56 Datenbytes
64 Bytes von 172.19.0.2: seq=0 ttl=64 Zeit=0,061 ms
64 Bytes von 172.19.0.2: seq=1 ttl=64 Zeit=0,062 ms

ping ibaboss_test1_1
PING ibaboss_test1_1 (172.19.0.2): 56 Datenbytes
64 Bytes von 172.19.0.2: seq=0 ttl=64 Zeit=0,045 ms
64 Bytes von 172.19.0.2: seq=1 ttl=64 Zeit=0,056 ms
64 Bytes von 172.19.0.2: seq=2 ttl=64 Zeit=0,061 ms

# Im Netzwerk können Sie über den Containernamen oder den Netzwerkalias kommunizieren

Das Format des Compose-Containernamens lautet: <Projektname><Dienstname><Seriennummer>

Obwohl Sie den Projektnamen und den Dienstnamen anpassen können, können Sie diesen Tag verwenden, um die Benennung des Containers anzugeben, wenn Sie die volle Kontrolle darüber haben möchten:

Containername: App
Katze docker-compose_v1.yml 
Version: '3'
Leistungen: 
 Prüfung1:
  Bild: busybox:latest
  Einstiegspunkt:
   - Spitze
  Containername: test1
  Netzwerke:
   - Backend

 Prüfung2:
  Bild: busybox:latest
  Einstiegspunkt:
   - Spitze
  Containername: test2
  Netzwerke:
   - Backend

Netzwerke:
 Backend:

Start-up

docker-compose -f docker-compose_v1.yml up -d

Docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
132859fc77c2 busybox:latest "top" Vor etwa einer Minute Up Vor etwa einer Minute test2
cd0a78dc9bd4 busybox:latest "top" Vor etwa einer Minute Up Vor etwa einer Minute test1

docker exec -it 132859fc77c2 ping test1
PING-Test1 (172.19.0.2): 56 Datenbytes
64 Bytes von 172.19.0.2: seq=0 ttl=64 Zeit=0,070 ms
64 Bytes von 172.19.0.2: seq=1 ttl=64 Zeit=0,068 ms
64 Bytes von 172.19.0.2: seq=2 ttl=64 Zeit=0,059 ms

Auffüllen:

Docker Compose - Problem mit dem gemeinsam genutzten Netzwerk für mehrere Container

Vor ein paar Tagen wollte ich Docker Compose verwenden, um mehrere Container zu schreiben, die ein Containernetzwerk gemeinsam nutzen, aber ich bekam immer einen Fehler. Heute habe ich es erneut versucht und festgestellt, dass es durch das Portbindungsproblem verursacht wurde. Der Port kann nur an den Container gebunden werden, der die Netzwerkkarte generiert. Wenn er an andere Fenster gebunden ist, wird ein Fehler gemeldet. Im folgenden Code teilt der MySQL-Dienst die Nginx-Netzwerkkarte. Wenn Port:3306 in MySQL verwendet wird, kann er nicht ausgeführt werden. Verschieben Sie 3306 zu Nginx und starten Sie es erfolgreich.

Version: '3.3'
Leistungen:
nginx:
Bild: "lnp_php"
# Containername: "lnmp_nginx"
Häfen:
- "80:80"
- „443:443“
- „3306:3306“
exponieren:
- "3306"
Bände:
- /home/www/php:/home/www:rw
# hängt ab von:
# -mysql
# Links:
# -mysql
MySQL:
Bild: "mysql"
# Containername: "lnmp_mysql"
Anzahl der Anschlüsse:
# - "3306:3306"
# exponieren:
# - "3306"
Bände:
– /home/docker/conf/mysql_w:/etc/mysql:rw
Umfeld:
-MYSQL_ROOT_PASSWORD=123456
hängt ab von:
- nginx
Netzwerkmodus: "Dienst:nginx"

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:
  • Docker-Compose - ausführliche Erklärung und Beispielcode
  • Detaillierte Schritte zur Installation und Einrichtung von Docker-compose
  • Detaillierte Beispiele zur Verwendung von Docker-Compose
  • Ubuntu 15.10 Installations-Docker und Docker-Compose-Tutorial
  • Verwenden Sie Docker-Compose, um eine AspNetCore-Entwicklungsumgebung zu erstellen
  • Eine kurze Diskussion über die Docker-Compose-Netzwerkeinstellungen
  • Eine kurze Analyse des Problems, dass MySQL bei der Bereitstellung mit Docker-Compose nicht zugänglich ist
  • Detaillierte Erläuterung zum Erreichen einer hohen Verfügbarkeit von Eureka durch Docker und Docker-Compose
  • So stellen Sie Gitlab mit Docker-Compose bereit
  • Detaillierte Erklärung der Softwarekonfiguration mit Docker-Compose unter Linux

<<:  Bootstrap FileInput implementiert Bild-Upload-Funktion

>>:  Zusammenfassung der MySQL-Injection-Bypass-Filtertechniken

Artikel empfehlen

Detaillierte Erklärung der Stammverzeichniseinstellungen in nginx.conf

Bei der Konfiguration von nginx.conf treten immer...

Implementierung des Whack-a-Mole-Spiels in JavaScript

In diesem Artikel finden Sie den spezifischen Cod...

MySQL 8.0.18 verwendet Klon-Plugin, um die MGR-Implementierung neu zu erstellen

Angenommen, ein Knoten im Drei-Knoten-MGR ist abn...

js, um die Produktionsmethode des Karussells zu realisieren

In diesem Artikel wird der spezifische Code für j...

MySQL-Datenbank implementiert OLTP-Benchmark-Test basierend auf Sysbench

Sysbench ist ein hervorragendes Benchmark-Tool, d...

MySQL Online-Übung zur Deadlock-Analyse

Vorwort Ich glaube, dass jeder beim Erlernen von ...

Detailliertes Installationstutorial für MySQL 5.7.11 unter Win7

Betriebssystem: Win7 64-Bit Ultimate Edition Komp...