Grundlegende Networking -Beispiele zum Verbinden von Docker -Containern
- 2812
- 230
- Phoebe Jeorga
Eine der vielen wünschenswerten Funktionen, die direkt in Docker eingebaut sind. Die Networking -Funktion von Docker kann mit a zugegriffen werden --Verknüpfung
Flag, das es ermöglicht, eine beliebige Anzahl von Docker -Containern zu verbinden, ohne dass die internen Ports eines Containers der Außenwelt ausgesetzt werden müssen.
In diesem Handbuch lernen Sie, wie Sie zwei oder mehr Docker -Container auf einem Linux -System über Befehlszeilenanweisungen zusammenstellen können. Dies funktioniert bei jeder Linux -Verteilung. Schauen Sie sich die folgenden Schritt -für -Schritt -Anweisungen an, um herauszufinden, wie.
In diesem Tutorial lernen Sie:
- Wie man Docker -Container miteinander vernetzt
Kategorie | Anforderungen, Konventionen oder Softwareversion verwendet |
---|---|
System | Jede Linux -Distribution |
Software | Docker |
Andere | Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl. |
Konventionen | # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können |
Verbinden von Docker -Containern durch Networking
- In dieser Konfiguration erfahren Sie, wie Sie zwei oder mehr Docker -Container mithilfe einer einfachen Docker -Netzwerktechnik miteinander verknüpfen können. Wir können mit dem Einsatz unseres ersten Docker -Containers mit dem Namen
Sanbox1
, Zu dem werden wir später einen Netzwerk -Link erstellen:# Docker Run -it --Name Sandbox1 -h Sanbox1 Linuxconfig/Sandbox/Bin/Bash
Der obige Befehl hat nichts Neues, außer zu beachten, dass wir keine Netzwerkports enthüllen, obwohl es unsere Absicht ist, auf Dienste zuzugreifen (SSH, Datenbankverbindung usw.) über ihre relevanten Portnummern.
- Der folgende Linux -Befehl bereitstellt eine Sekunde und diesmal ein übergeordneter Docker -Container benannt
Sandbox2
. Wir werden auch a verwenden--Verknüpfung
Flag, das eine sogenannte Eltern-Kind-Beziehung mit zuvor bereitgestelltem Container erstelltSandbox1
. Außerdem die--Verknüpfung
Mit Flag können den übergeordneten Container auf alle ausgeführten Dienste zugreifenSandbox1
Container über seine entsprechenden Portsnummern ohne die Notwendigkeit des Kindercontainers, Anschlüsse an externe Welt auszusetzen.# Docker Run -it --Name Sandbox2 -h Sandbox2 - -Link Sandbox1: Sandbox1 Linuxconfig/Sandbox/Bin/Bash
Der obige Docker -Befehl verwendete die
--Verknüpfung
Flagge, die zwei Argumente erwartet, die durch einen Dickdarm getrennt sind. Es wird erwartetSandbox1
Containername, mit dem wir verlinken möchten. Das zweite Argument auchSandbox1
, ist ein interner Alias von verwendet vonSandbox2
lösenSandbox1
Die Netzwerkkonfiguration verwendet die/etc/hosts
Konfigurationsdatei:
# Grep Sandbox1 /etc /hosts 172.17.0.41 Sandbox1
- Abhängig von der verwendeten Anschlüsse Ihres untergeordneten Containers können Sie auch extrahieren
Sandbox1
Konfiguration aus Systemumgebungsvariablen. Zum Beispiel:# ENV HOSTNAME = SANDBOX2 Term = Xterm Sandbox1_Port = TCP: // 172.17.0.37: 7555 Sandbox1_Port_7555_tcp = tcp: // 172.17.0.37: 7555 Path =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin pwd =/sandbox1_port_7555_tcp_addr = 172.17.0.37 SANDBOX1_PORT_7555_TCP_PROTO = TCP SHLVL = 1 HOME =/root sANDBOX1_NAME =/SANDBOX2/SANDBOX1 SANDBOX1_PORT_7555_TCP_PORT = 7555 _ =/usr/bin/env/env/env
- Auf diese Weise können wir einfach den Alias unseres Kindercontainers verwenden, um eine Verbindung zu ihm von einem übergeordneten Container herzustellen
Sandbox2
Ohne die Notwendigkeit, seine IP -Adresse zu harten:# Ping -c 1 Sandbox1 Ping Sandbox1 (172.17.0.41): 56 Daten Bytes 64 Bytes von 172.17.0.41: ICMP_SEQ = 0 TTL = 64 Time = 0.071 ms --- Sandbox1 Ping Statistiken --- 1 Pakete übertragen, 1 Pakete erhalten, 0% Paketverlust Roundtrip min/avg/max/stddev = 0.071/0.071/0.071/0.000 ms
und greifen Sie auch an Ports und Dienste zu: Dienste:
# NMAP -P 22 Sandbox1 Starten von NMAP 6.47 (http: // nmap.org) am 2015-05-18 08:58 UTC NMAP-Scan-Bericht für Sandbox1 (172.17.0.41) Der Host ist auf (0.000090s Latenz). Port State Service 22/TCP Open SSH MAC -Adresse: 02: 42: AC: 11: 00: 29 (unbekannt) NMAP Fertig: 1 IP -Adresse (1 Host -Up) gescannt in 0.50 Sekunden
Das ist alles dazu. Unsere beiden Container können jetzt miteinander kommunizieren und Dienste wie SSH -Arbeiten zwischen ihnen. Sie können dieselbe Konfiguration auf zwei oder mehr Docker -Container anwenden, die Sie miteinander vernetzen müssen.
Gedanken schließen
In diesem Handbuch haben wir gesehen, wie Docker -Container mit einem Linux -System miteinander verbunden werden können. Dies ist eine relativ grundlegende Aufgabe, die durch Docker erleichtert wird --Verknüpfung
Möglichkeit. Die Fähigkeit, zwei oder mehr Docker -Container miteinander zu vernetzen, erhöht die Leistung und Nützlichkeit von Docker erheblich.
Verwandte Linux -Tutorials:
- Dinge zu installieren auf Ubuntu 20.04
- So erstellen, verwalten und freilegen Sie einen Dienst in Kubernetes
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- So stellen Sie über SSH eine Verbindung zum Docker -Container her
- So erstellen Sie einen Docker -basierten Lampenstapel mit Docker auf…
- Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
- So setzen oder ändern Sie das Startpartitionsflag auf Linux
- So zeigen/prüfen/überprüfen Sie auf Ubuntu Linux nach offenen Ports
- So verwenden Sie eine Datei als Luks -Geräteschlüssel
- Installieren Sie Arch Linux in VMware Workstation
- « So entfernen Sie alle Docker -Container mit einem einzigen Befehl
- Entfernen Sie doppelte Zeilen aus einer Textdatei mit der Linux -Befehlszeile »