Grundlegende Networking -Beispiele zum Verbinden von Docker -Containern

Grundlegende Networking -Beispiele zum Verbinden von Docker -Containern

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 Softwareanforderungen und Linux -Befehlszeilenkonventionen
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



  1. 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.

  2. 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 erstellt Sandbox1. Außerdem die --Verknüpfung Mit Flag können den übergeordneten Container auf alle ausgeführten Dienste zugreifen Sandbox1 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 erwartet Sandbox1 Containername, mit dem wir verlinken möchten. Das zweite Argument auch Sandbox1, ist ein interner Alias ​​von verwendet von Sandbox2 lösen Sandbox1Die Netzwerkkonfiguration verwendet die /etc/hosts Konfigurationsdatei:



    # Grep Sandbox1 /etc /hosts 172.17.0.41 Sandbox1 
  3. 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 
  4. 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 
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