Grundlegende Networking -Beispiele zum Verbinden von Docker -Containern
- 2861
- 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
Verknüpfen zwei Docker -Container durch Networking unter Linux | 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üpfungFlag, das eine sogenannte Eltern-Kind-Beziehung mit zuvor bereitgestelltem Container erstelltSandbox1. Außerdem die--VerknüpfungMit Flag können den übergeordneten Container auf alle ausgeführten Dienste zugreifenSandbox1Container ü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üpfungFlagge, die zwei Argumente erwartet, die durch einen Dickdarm getrennt sind. Es wird erwartetSandbox1Containername, mit dem wir verlinken möchten. Das zweite Argument auchSandbox1, ist ein interner Alias von verwendet vonSandbox2lösenSandbox1Die Netzwerkkonfiguration verwendet die/etc/hostsKonfigurationsdatei:
# Grep Sandbox1 /etc /hosts 172.17.0.41 Sandbox1
- Abhängig von der verwendeten Anschlüsse Ihres untergeordneten Containers können Sie auch extrahieren
Sandbox1Konfiguration 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
Sandbox2Ohne 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
Wir können vom Sandbox1 -Container zu Sandbox2 kommunizieren, wie der Ping -Befehl zeigt 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 »