Podstawowy przykład sieci na temat połączenia kontenerów Docker
- 4794
- 52
- Klaudia Woś
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
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
- 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.
- 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 konteneremSandbox1
. Ponadto--połączyć
Flaga umożliwi kontenerowi nadrzędne dostęp do dowolnych działających usługSandbox1
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 dostarczonymSandbox1
Nazwa kontenera, z którą chcielibyśmy się połączyć. Drugi argument, równieżSandbox1
, jest wewnętrznym aliasem używanym przezSandbox2
rozwiązaćSandbox1
Konfiguracja sieciowa za pomocą/etc/hosts
plik konfiguracyjny:
# Grep Sandbox1 /etc /hosts 172.17.0.41 Sandbox1
- W zależności od użytej konfiguracji portów kontenera dziecka możesz również wyodrębnić
Sandbox1
Konfiguracja 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
- 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
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
- « Jak usunąć wszystkie kontenery Docker za pomocą jednego polecenia
- Usuwanie zduplikowanych wierszy z pliku tekstowego za pomocą linii poleceń Linux »