Docker Link realisiert die Containerverbindung

Docker Link realisiert die Containerverbindung

1.1. Netzwerkzugriff zwischen Containern über IP

Erstellen Sie zwei neue Container tomcat01 und tomcat02

docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat02 tomcat

Bildbeschreibung hier einfügen

Verwenden Sie den Befehl ifconfig, um die Netzwerkkarteninformationen von toncat01 anzuzeigen:

Bildbeschreibung hier einfügen

Sie können sehen, dass die IP-Adresse von tomcat01 172.17.0.2 ist

Überprüfen Sie dann die Netzwerkkarteninformationen von toncat02:

Bildbeschreibung hier einfügen

Wie Sie sehen können, lautet die IP-Adresse von tomcat02 172.17.03

Testen Sie, ob die Container tomcat01 und tomcat02 sich gegenseitig anpingen können:

tomcat01 pingt tomcat02 an:

Bildbeschreibung hier einfügen

tomcat02 pingt tomcat01 an:

Bildbeschreibung hier einfügen

Wie in den beiden obigen Abbildungen gezeigt, können beide erfolgreich angepingt werden, unabhängig davon, ob tomcat01 tomcat02 oder tomcat02 tomcat01 pingt.

Hinweis: Wenn im Container kein ifconfig-Befehl und kein Ping-Befehl vorhanden sind, führen Sie die folgenden Befehle nacheinander aus:

apt-get-Aktualisierung
apt installiere iputils-ping
apt installieren net-tools

1.2. Netzwerkzugriff zwischen Containern über Containernamen oder Container-ID

Wenn Sie über den Containernamen eine Netzwerkverbindung zwischen Containern herstellen möchten, müssen Sie die beiden Container mit „docker run --link“ verknüpfen.

–link kann verwendet werden, um zwei Container zu verknüpfen, sodass der Quellcontainer (der verknüpfte Container) und der empfangende Container (der Container, dessen Verknüpfung aktiv aufgehoben wird) miteinander kommunizieren können und der empfangende Container einige Daten des Quellcontainers abrufen kann, z. B. die Umgebungsvariablen des Quellcontainers.

–Link-Format

--link <name or id>:alias

--link Einen Link zu einem anderen Container hinzufügen

Name und ID sind der Name und die ID des Quellcontainers und Alias ​​ist der Alias ​​des Quellcontainers unter dem Link.

Beispiele für die Verwendung von –link

Erstellen Sie einen Container tomcat03, lassen Sie tomcat03 den empfangenden Container sein (den Container, der aktiv verknüpft ist) und den obigen tomcat01 (Alias ​​t1) den Quellcontainer (den verknüpften Container) sein und verknüpfen Sie die beiden Container:

docker run -d -P --name tomcat03 --link tomcat01:t1 tomcat

tomcat01 ist der Name des oben gestarteten Containers 7b94f50c43ea. Er wird hier als Quellcontainer verwendet und t1 ist der Alias ​​des Containers unter dem Link. Einfach ausgedrückt sind aus der Sicht des Containers tomcat03 tomcat01 und t1 beide die Namen des Containers 7b94f50c43ea und als Hostname des Containers kann tomcat03 mit jedem dieser beiden Namen auf den Container 7b94f50c43ea zugreifen und mit ihm kommunizieren (Docker löst ihn automatisch über DNS auf).

Führen Sie einen Linktest durch: tomcat03 ping tomcat01

ping tomcat01

Bildbeschreibung hier einfügen

Ping T1

Bildbeschreibung hier einfügen

Beide können angepingt werden, was zeigt, dass tomcat01 und t1 auf 172.17.0.2 zeigen.

Die obige Verknüpfung ist jedoch nur einseitig, d. h., nur der empfangende Container kann eine Verknüpfung zum Quellcontainer herstellen, und der Quellcontainer kann keine Verknüpfung zum empfangenden Container herstellen. Das heißt, tomcat03 ist mit tomcat01 verknüpft, tomcat03 kann tomcat01 anpingen, aber tomcat01 ist nicht mit tomcat03 verknüpft, und tomcat01 kann tomcat03 nicht anpingen. Dies hat jedoch keine Auswirkungen auf Tomcat01, der Tomcat03 über IP anpingt, oder auf Tomcat03, der Tomcat01 anpingt.

--link-Prinzip

Überprüfen Sie die Hosts-Datei von tomcat03. Das Betriebssystem schreibt vor, dass vor einer DNS-Anforderung geprüft werden muss, ob in der Hosts-Datei des Systems eine Zuordnungsbeziehung zwischen dem Domänennamen und der IP besteht. Wenn ja, wird direkt auf den durch die IP-Adresse angegebenen Netzwerkstandort zugegriffen. Wenn nein, wird eine Domänennamenauflösungsanforderung an einen bekannten DNS-Server gesendet.

docker exec -it tomcat03 cat /etc/hosts

Bildbeschreibung hier einfügen

In der Hostkonfigurationsdatei von tomcat03 können Sie sehen, dass die IP, der Containername, der Alias ​​und die Container-ID von tomcat01 zugeordnet sind. Daher kann tomcat03 über den angegebenen Containernamen mit tomcat01 kommunizieren.

–link fügt eine Namensauflösung für den Container tomcat01 zum empfangenden Container hinzu (hier der Container mit dem Namen tomcat003). Bei dieser Namensauflösung müssen Sie keine IP verwenden, um mit dem Quellcontainer zu kommunizieren. Darüber hinaus ist Docker beim Neustart des Quellcontainers für die Aktualisierung der Datei /etc/hosts verantwortlich, sodass Sie sich keine Sorgen machen müssen, dass sich die IP-Adresse nach dem Neustart des Containers ändert und die Auflösung nicht wirksam wird.

Dies ist das Ende dieses Artikels über die Verwendung von Docker Link zum Verbinden von Containern. Weitere Informationen zur Verbindung von Docker-Containern 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:
  • Eine kurze Diskussion über die vorläufige Praxis der Docker-Container-Verbindung
  • Detaillierte Erläuterung der Docker-Portzuordnung und Containerverbindung
  • Docker-Lernhinweise: Weave realisiert die hostübergreifende Containerverbindung
  • Detaillierte Erläuterung der Verbindungsmethoden für Docker-Container
  • Implementierung der Docker-Link-Containerverbindung

<<:  Reine clientseitige und rein serverseitige Implementierungslösungen für die Konvertierung von HTML in PDF

>>:  Eine kurze Diskussion über die spezifische Verwendung von Ansichtsfenstern in mobilen Endgeräten

Artikel empfehlen

So erstellen Sie schnell eine LAMP-Umgebung auf der CentOS-Plattform

Dieser Artikel beschreibt anhand eines Beispiels,...

nginx generiert automatisch Konfigurationsdateien im Docker-Container

Wenn ein Unternehmen eine automatisierte Docker-B...

So deinstallieren Sie Docker Toolbox vollständig

Docker Toolbox ist eine Lösung zur Installation v...

CSS3-Flip-Card-Nummern-Beispielcode

Ich habe heute eine Aufgabe von der Firma erhalte...

Ausführliche Erklärung der Set- und WeakSet-Sammlungen in ES6

Inhaltsverzeichnis Ein Set ist eine spezielle Sam...

So installieren Sie MySQL über SSH auf einem CentOS VPS

Geben Sie yum install mysql-server Drücken Sie Y,...

Abfrage der Daten des Tages vor dem aktuellen Zeitintervall in MySQL

1. Hintergrund In tatsächlichen Projekten stoßen ...

Führen Sie die Schritte zur Installation von FFmpeg auf dem CentOS-Server aus

Vorwort Die Serversystemumgebung ist: CentOS 6.5 ...