Podstawowy przykład sieci na temat połączenia kontenerów Docker
- 4848
- 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
Łączenie dwóch kontenerów Docker razem poprzez sieci w 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
- 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ługSandbox1kontener 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 dostarczonymSandbox1Nazwa kontenera, z którą chcielibyśmy się połączyć. Drugi argument, równieżSandbox1, jest wewnętrznym aliasem używanym przezSandbox2rozwiązaćSandbox1Konfiguracja sieciowa za pomocą/etc/hostsplik 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ć
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
- 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
Sandbox2Bez 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
- « Jak usunąć wszystkie kontenery Docker za pomocą jednego polecenia
- Usuwanie zduplikowanych wierszy z pliku tekstowego za pomocą linii poleceń Linux »