Jak przekierować port w Dockerze

Jak Przekierowac Port W Dockerze



Docker to popularna platforma dokowania, która umożliwia dokowanie aplikacji i oprogramowania w izolowanym środowisku zwanym kontenerem. Podczas wykonywania aplikacji w kontenerach użytkownicy zwykle muszą uzyskać dostęp do aplikacji znajdującej się w kontenerze poza kontenerem. W tym celu użytkownicy muszą zastosować technikę przekierowania portów.

Przekierowanie portów w Dockerze to proces, który umożliwia nam udostępnienie portu kontenera w systemie hosta Docker. Pozwala nam to uruchomić aplikację w izolowanym środowisku, a także udostępnić ją spoza kontenera na komputerze użytkownika.

Ten post pokaże:







Jak przekierować port w oknie Docker przy użyciu znacznika „-p” lub „–publish”.

Aby przekazać port w Dockerze, użytkownik musi opublikować port kontenera na hoście Dockera. W tym celu uruchom kontener na hoście dokującym, używając polecenia „ -P ' Lub ' -publikować ”znacznik w „ uruchomienie dokera ' Komenda.



W celu prawidłowej demonstracji postępuj zgodnie z poniższymi instrukcjami.



Krok 1: Utwórz plik Dockerfile

Najpierw utwórz plik i ustaw jego nazwę jako „ Plik Dockera ”. Ten plik zawiera instrukcje tekstowe dotyczące tworzenia szablonu kontenera Docker. Na przykład zadokujmy prosty program Golang, korzystając z poniższego fragmentu w pliku Dockerfile:





Z golanga: 1.8

KATALOG PRACY / Iść / źródło / aplikacja

KOPIUJ main2.go .

URUCHOMIJ, idź budować -O serwer internetowy .

UJAWNIĆ 8080

CMD [ './serwer internetowy' ]

W podanym fragmencie:

  • Z ” służy do ustawiania obrazu bazowego.
  • KATALOG PRACY ” definiuje katalog roboczy kontenera.
  • KOPIUJ ” utworzy kopię pliku programu w ścieżce określonej przez kontener.
  • URUCHOMIĆ ” wykona określone polecenie w kontenerze.
  • UJAWNIĆ ” określa port, na którym kontener będzie nasłuchiwany.
  • CMD ” określa wykonywalne punkty kontenera.

Krok 2: Utwórz program Golang

Następnie utwórz kolejny plik o nazwie „ main2.go ” i wklej poniższy program Golang, który wypisuje prosty ciąg na porcie „ 8080 ”:



pakiet główny

import (

„fm”

'dziennik'

„net/http”

)

obsługa funkcji ( w http.ResponseWriter, r * http.Żądanie ) {

HTML := `

DOCTYPEhtml >

< HTML >

< głowa >

< tytuł > Witaj Golangu ! tytuł >

< styl >

ciało {

kolor tła: #D2B48C;

}

.pojemnik {

wyrównanie tekstu: do środka;

dopełnienie: 50px;

}

styl >

głowa >

< ciało >

< div klasa = 'pojemnik' >

< h1 > Cześć ! Witamy w samouczku LinuxHint h1 >

div >

ciało >

HTML >`

w.Nagłówek ( ) .Ustawić ( 'Typ zawartości' , „tekst/html” )

fmt.Fprint ( w ,html )

}

funkcja główna ( ) {

http.HandleFunc ( „/” , opiekun )

log. Fatalny ( http.ListenAndServe ( „0.0.0.0:8080” , zero ) )

}

Krok 3: Wygeneruj migawkę kontenera

Teraz wygeneruj migawkę kontenera z określonego powyżej pliku Dockerfile. W tym celu najpierw przejdź do katalogu, w którym tworzony jest plik Dockerfile, używając przycisku „ cd <ścieżka do katalogu roboczego> ' Komenda:

Następnie wygeneruj nowy obraz kontenera za pomocą podanego polecenia:

kompilacja dokera -T golang-img .

Podany wynik pokazuje, że obraz jest tworzony zgodnie z podanym kontekstem kompilacji.

Krok 4: Przekaż port hosta do portu kontenerowego

Teraz wykonaj kontener i przekaż port hosta do portu kontenera, aby uzyskać dostęp do aplikacji dokowanej poza kontenerem na komputerze lokalnym. W tym celu uruchom „docker run –name -p : ' Komenda:

uruchomienie dokera --nazwa kontynuacja -P 8080 : 8080 golang-img

Tutaj ' -P ” służy do publikowania portu wykonywania kontenera na hoście dokującym:

Krok 5: Weryfikacja

W celu weryfikacji przejrzyj działające kontenery za pomocą „ okno dokowane ps ”:

doker ps

W poniższym wyniku skonteneryzowana aplikacja nasłuchuje na dostępnych interfejsach sieciowych „ 0.0.0.0 ” na opublikowanym porcie „ 8080 ”. Oznacza to, że port jest przekazywany do działającej aplikacji na komputerze hosta:

Teraz uruchom przeglądarkę i przejdź do „ http://localhost:8080/ ” i sprawdź, czy zastosowano technikę przekierowania portów, czy nie i czy skonteneryzowana aplikacja jest dostępna poza kontenerem w systemie hosta:

Tutaj pomyślnie przekierowaliśmy port hosta do portu kontenera, a aplikacja jest dostępna na hoście dokującym.

Jak przekazać port w Dockerze za pomocą Docker Compose

Aby przekazać port kontenera do hosta w celu uzyskania dostępu do aplikacji znajdującej się w kontenerze spoza kontenera, użytkownik może skorzystać z opcji „ Port ” w pliku YAML tworzenia. Docker Compose to usługa Docker, która umożliwia uruchamianie różnych usług i aplikacji w różnych kontenerach. Używając ' docker-compose.yml ” użytkownik może także przekazać port kontenera do komputera hosta i uzyskać połączenie aplikacji ze światem zewnętrznym.

Zapoznaj się z poniższą procedurą, aby zapoznać się z ilustracjami.

Krok 1: Utwórz plik redagowania

Najpierw wygeneruj plik o nazwie „ docker-compose.yml ” i dodaj do pliku następującą zawartość:

wersja: „3”

usługi:

sieć:

zbudować: .

porty:

- 8080 : 8080

W powyższym fragmencie „ porty ” służy do podłączenia hosta do portu kontenera. W tym przypadku pierwsza wartość to port hosta, a druga wartość to port kontenera.

Krok 2: Uruchom aplikację

Po określeniu instrukcji w pliku tworzenia uruchom aplikację w kontenerze za pomocą przycisku „ docker — komponowanie ' Komenda:

docker — komponowanie

Krok 3: Weryfikacja

W celu weryfikacji wypisz pojemniki do tworzenia kompozycji, używając „ docker-compose ps ' Komenda:

tworzenie dokerów ps -A

Aby sprawdzić, czy kontener jest dostępny na komputerze hosta, przejdź do „ http://localhost:8080/ Adres URL. Tutaj możesz zobaczyć, że skutecznie przekierowaliśmy port kontenera na hoście:

Jak przekierować port do określonej sieci

Aby przekierować port kontenera do określonej sieci, użytkownik musi określić sieć, w której chce uzyskać dostęp do kontenera, za pomocą przycisku „ -sieć ' opcja. Spójrz na podane kroki w celu demonstracji.

Krok 1: Utwórz sieć

Utwórz nową sieć za pomocą „ utwórz sieć dokerów ' Komenda. Domyślnie ta sieć będzie używać sterownika mostu:

sieć dokerów tworzy mygo-network

Aby wyświetlić sieci Dockera, użyj opcji „ sieć dokowana ls ' Komenda:

sieć doków ls

Tutaj z sukcesem stworzyliśmy „ moja sieć ”, który używa „ most ' kierowca:

Krok 2: Mapa sieci

Aby uruchomić kontener i uzyskać do niego dostęp w określonej sieci przy użyciu techniki przekierowania portów, użyj poniższego polecenia:

uruchomienie dokera -P 8080 : 8080 --sieć moja-sieć golang-img

W danym poleceniu „ -P ” opcja publikuje kontener na określonym porcie określonej sieci. Tutaj ' -sieć ” służy do zdefiniowania sieci dokerów:

W celu weryfikacji ponownie przejdź do „ http://localhost:8080 ” i sprawdź, czy kontener jest dostępny w określonej sieci, czy nie:

Powyższe dane wyjściowe wskazują, że skutecznie przekierowaliśmy port kontenera w określonej sieci.

Notatka: Korzystając z sieci „host”, użytkownik nie musi publikować portu z kontenera na host za pomocą „ -P ' Lub ' -publikować ' opcja.

Przekaż port do określonej sieci za pomocą Docker Compose

Dodaj następujący fragment w „ docker-compose.yml ' plik. W poniższym fragmencie „ sieci Klawisz ” służy do określenia sieci:

wersja: „3”
usługi:

sieć:
zbudować: .
porty:
- 8080 : 8080

Teraz uruchom aplikację w kontenerze za pomocą przycisku „ docker — komponowanie ' Komenda:

docker — komponowanie

Omówiliśmy metody przekierowania portów w Dockerze.

Wniosek

Aby przekierować port w Dockerze w celu uzyskania dostępu do aplikacji dokowanej poza kontenerem, użytkownik może użyć opcji „ -P ' Lub ' -publikować ” w opcji „ uruchomienie dokera ” lub użytkownik może użyć polecenia „ porty ” w pliku tworzenia Dockera. Aby uzyskać dostęp do kontenera w określonej sieci, użytkownik może przekierować port kontenera w sieci za pomocą opcji „ –sieć ' opcja. W tym blogu zademonstrowano techniki przekazywania portów w Dockerze.