Podstawowy przykład sieci na temat połączenia kontenerów Docker

Podstawowy przykład sieci na temat połączenia kontenerów Docker

Jedną z wielu pożądanych funkcji zbudowanych bezpośrednio w Docker jest nawiązywanie kontaktów. Dostęp do funkcji sieci Docker można uzyskać za pomocą --połączyć Flaga, która pozwala podłączyć dowolną liczbę kontenerów Docker bez potrzeby ujawnienia wewnętrznych portów kontenera do świata zewnętrznego.

W tym przewodniku dowiesz się, jak łączyć dwa lub więcej kontenerów Docker razem w systemie Linux za pośrednictwem instrukcji wiersza poleceń. Będzie to działać na dowolnym dystrybucji Linux. Sprawdź poniższe instrukcje krok po kroku, aby dowiedzieć się, jak.

W tym samouczku nauczysz się:

  • Jak wspólnie nawiązywać kontakty z kontenerami dokera
Łączenie dwóch kontenerów Docker razem poprzez sieci w Linux Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Każda dystrybucja Linux
Oprogramowanie Doker
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Łączenie kontenerów Docker za pomocą sieci



  1. W tej konfiguracji dowiesz się, jak połączyć dwa lub więcej kontenerów Docker razem za pomocą prostej techniki sieci Docker. Możemy zacząć od wdrożenia naszego pierwszego kontenera Docker, nazwanego Sanbox1, do którego później utworzymy link sieciowy:
    # Docker Run -it --Name Sandbox1 -H Sanbox1 Linuxconfig/Sandbox/Bin/Bash 

    Nie ma nic nowego w powyższym poleceniu, z wyjątkiem zauważenia, że ​​nie ujawniamy żadnych portów sieci.) za pośrednictwem ich odpowiednich numerów portów.

  2. Poniższe polecenie Linux wystąpi drugi i tym razem nazywany kontener Docker Sandbox2. Użyjemy również --połączyć flaga, która stworzy tak zwaną relację rodzic-dziecko z wcześniej wdrożonym kontenerem Sandbox1. Ponadto --połączyć Flaga umożliwi kontenerowi nadrzędne dostęp do dowolnych działających usług Sandbox1 kontener za pośrednictwem odpowiednich numerów portów bez potrzeby pojemnika dla dzieci, aby wystawić dowolne porty na świat zewnętrzny.
    # Docker Run -it -Nazwa Sandbox2 -H Sandbox2 -Link Sandbox1: Sandbox1 LinuxConfig/Sandbox/Bin/Bash 

    Powyższe polecenie dokera używało --połączyć Flaga, która oczekuje dwóch argumentów oddzielonych przez okrężnika. Pierwszy argument ma być identyfikatorem kontenera lub w naszym przypadku dostarczonym Sandbox1 Nazwa kontenera, z którą chcielibyśmy się połączyć. Drugi argument, również Sandbox1, jest wewnętrznym aliasem używanym przez Sandbox2 rozwiązać Sandbox1Konfiguracja sieciowa za pomocą /etc/hosts plik konfiguracyjny:



    # Grep Sandbox1 /etc /hosts 172.17.0.41 Sandbox1 
  3. W zależności od użytej konfiguracji portów kontenera dziecka możesz również wyodrębnić Sandbox1Konfiguracja ze zmiennych środowiska systemowego. Na przykład:
    # Env HostName = Sandbox2 Term = xtermandbox1_port = tcp: // 172.17.0.37: 7555 Sandbox1_port_7555_tcp = tcp: // 172.17.0.37: 7555 ścieżka =/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/envo 
  4. W ten sposób możemy po prostu użyć aliasu naszego pojemnika dla dzieci, aby połączyć się z nim z pojemnika nadrzędnego Sandbox2 Bez potrzeby kodu Hardcode jego adres IP:
    # ping -c 1 Sandbox1 ping Sandbox1 (172.17.0.41): 56 bajtów danych 64 bajtów od 172.17.0.41: icmp_seq = 0 ttl = 64 czas = 0.071 MS --- Sandbox1 Statystyka ping --- 1 Przesyłane pakiety, 1 Pakiety Otrzymane, 0% utrata pakietu Min/AVG/Max/stddev = 0.071/0.071/0.071/0.000 ms 


    a także dostęp do wszystkich portów i usług portów:

    # nmap -p 22 Sandbox1 Uruchamianie NMAP 6.47 (http: // nmap.Org) na 2015-05-18 08:58 UTC NMAP Scan Raport dla Sandbox1 (172.17.0.41) Host jest w górę (0.Opóźnienie 0000990s). Port State Service 22/TCP Otwórz SSH MAC Adres: 02: 42: AC: 11: 00: 29 (nieznany) NMAP Dokonany: 1 adres IP (1 host w górę) Zeskany w 0.50 sekund 
Jesteśmy w stanie komunikować się z pojemnika Sandbox1 do Sandbox2, o czym świadczy polecenie ping

To wszystko. Nasze dwa kontenery mogą teraz komunikować się ze sobą i usługi, takie jak praca SSH między nimi. Możesz zastosować tę samą konfigurację do dowolnych dwóch lub więcej kontenerów Docker, które trzeba łączyć razem.

Zamykanie myśli

W tym przewodniku widzieliśmy, jak połączyć kontenery Docker w systemie Linux. Jest to stosunkowo podstawowe zadanie, które jest ułatwione przez Dockera --połączyć opcja. Możliwość łączenia dwóch lub więcej kontenerów Dockerów znacznie zwiększa moc i przydatność Dockera.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Jak tworzyć, zarządzać i ujawniać usługę w Kubernetes
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Jak połączyć się z kontenerem Docker za pośrednictwem SSH
  • Jak utworzyć stos lampy na bazie Dockera za pomocą Dockera na…
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Jak ustawić lub zmienić flagę partycji rozruchowej na Linux
  • Jak pokazać/sprawdzić otwarte porty na Ubuntu Linux
  • Jak używać pliku jako klucza urządzenia LUKS
  • Zainstaluj Arch Linux na stacji roboczej VMware