Jak předat port v Dockeru

Jak Predat Port V Dockeru



Docker je oblíbená dockerizační platforma, která ukotvuje aplikace a software v izolovaném prostředí známém jako kontejner. Při spouštění aplikací v kontejnerech se od uživatelů obvykle vyžaduje přístup ke kontejnerové aplikaci mimo kontejner. Pro tento účel musí uživatelé použít techniku ​​přesměrování portů.

Přesměrování portů v Dockeru je proces, který nám umožňuje odhalit port kontejneru na hostitelském systému Docker. Umožňuje nám spouštět aplikaci v izolovaném prostředí a také ji zpřístupňovat z vnějšku kontejneru na uživatelském počítači.

Tento příspěvek ukáže:







Jak předat port v Dockeru pomocí značky „-p“ nebo „–publish“.

K předání portu v Dockeru musí uživatel publikovat port kontejneru na hostiteli Dockeru. Za tímto účelem spusťte kontejner na hostiteli dockeru pomocí „ -p “ nebo „ -publikovat ” tag v “ docker spustit “příkaz.



Pro správnou demonstraci postupujte podle níže uvedených pokynů.



Krok 1: Vytvořte Dockerfile

Nejprve vytvořte soubor a nastavte jeho název jako „ Dockerfile “. Tento soubor obsahuje textové pokyny k vytvoření šablony kontejneru Docker. Pojďme například ukotvit jednoduchý program Golang pomocí níže uvedeného úryvku v souboru Dockerfile:





Z golangu: 1.8

WORKDIR / jít / src / aplikace

ZKOPÍROVAT main2.go .

RUN jděte stavět webový server .

ODHALIT 8080

CMD [ './webový server' ]

V daném úryvku:

  • Z ” se používá k nastavení základního obrázku.
  • WORKDIR “ definuje pracovní adresář kontejneru.
  • KOPÍROVAT ” vytvoří kopii programového souboru v cestě zadané kontejnerem.
  • BĚH ” spustí zadaný příkaz v kontejneru.
  • ODHALIT ” určuje port, na kterém bude kontejner naslouchán.
  • CMD ” určuje spustitelné body kontejneru.

Krok 2: Vytvořte program Golang

Dále vytvořte další soubor s názvem „ main2.go “ a vložte níže poskytnutý program Golang, který vytiskne jednoduchý řetězec na port “ 8080 “:



hlavní balíček

import (

'fmt'

'log'

'net/http'

)

obslužný program func ( v http.ResponseWriter, r * http.Žádost ) {

html := `

DOCTYPE html >

< html >

< hlava >

< titul > Ahoj Golange ! titul >

< styl >

tělo {

barva pozadí: #D2B48C;

}

.kontejner {

text-align: center;

odsazení: 50px;

}

styl >

hlava >

< tělo >

< div třída = 'kontejner' >

< h1 > Ahoj ! Vítejte v LinuxHint Tutorial h1 >

div >

tělo >

html >`

w.Záhlaví ( ) .Soubor ( 'Typ obsahu' , 'text/html' )

fmt.Fprint ( v , html )

}

func main ( ) {

http.HandleFunc ( '/' , psovod )

log.Osudný ( http.ListenAndServe ( '0.0.0.0:8080' , nula ) )

}

Krok 3: Vygenerujte snímek kontejneru

Nyní vygenerujte snímek pro kontejner z výše uvedeného souboru Dockerfile. Za tímto účelem nejprve přejděte do adresáře, kde je soubor Dockerfile vytvořen pomocí „ cd 'příkaz:

Dále vygenerujte nový obrázek kontejneru pomocí daného příkazu:

sestavení dockeru -t golang-img .

Daný výsledek ukazuje, že obrázek je vytvořen podle poskytnutého kontextu sestavení.

Krok 4: Předání portu hostitele na port kontejneru

Nyní spusťte kontejner a předejte hostitelský port do kontejnerového portu, abyste získali přístup k aplikaci dockerize mimo kontejner na místním počítači. Za tímto účelem spusťte “docker run –name -p : 'příkaz:

docker spustit --název go-cont -p 8080 : 8080 golang-img

Zde, „ -p příznak ” se používá k publikování spouštěcího portu kontejneru na hostiteli dockeru:

Krok 5: Ověření

Pro ověření zobrazte běžící kontejnery pomocí „ docker ps “:

přístavní dělník ps

V níže uvedeném výsledku kontejnerizovaná aplikace naslouchá na dostupných síťových rozhraních “ 0.0.0.0 “ na zveřejněném portu “ 8080 “. Znamená to, že port je předán běžící aplikaci na hostitelském počítači:

Nyní spusťte prohlížeč a přejděte na „ http://localhost:8080/ “ a ověřte, zda je použita technika přesměrování portů či nikoli a zda je kontejnerová aplikace přístupná mimo kontejner v hostitelském systému:

Zde jsme úspěšně předali port hostitele na port kontejneru a aplikace je přístupná na hostiteli dockeru.

Jak předat port v Dockeru pomocí Docker Compose

K předání kontejnerového portu hostiteli pro přístup ke kontejnerové aplikaci z vnějšku kontejneru může uživatel využít „ přístav ” zadejte do souboru yaml pro vytvoření. Docker compose je služba Docker, která nám umožňuje spouštět různé služby a aplikace v různých kontejnerech. Za použití ' docker-compose.yml ” může uživatel také přeposlat kontejnerový port na hostitelský počítač a mít spojení aplikace s vnějším světem.

Podívejte se na níže uvedený postup pro ilustrace.

Krok 1: Vytvořte nový soubor

Nejprve vygenerujte soubor s názvem „ docker-compose.yml ” a přidejte do souboru následující obsah:

verze: '3'

služby:

web:

stavět: .

porty:

- 8080 : 8080

Ve výše uvedeném úryvku je „ porty ” klíč se používá k připojení hostitele k portu kontejneru. Zde je první hodnotou hostitelský port a druhou hodnotou je port kontejneru.

Krok 2: Spusťte aplikaci

Po zadání pokynů v souboru pro vytvoření spusťte aplikaci v kontejneru pomocí „ docker-compose up 'příkaz:

docker-compose up

Krok 3: Ověření

Pro ověření sepište kontejnery pro psaní pomocí „ docker-compose ps 'příkaz:

docker-compose ps -A

Chcete-li zkontrolovat, zda je kontejner přístupný na hostitelském počítači, přejděte na „ http://localhost:8080/ “ URL. Zde můžete vidět, že jsme efektivně předali port kontejneru na hostiteli:

Jak přesměrovat port do konkrétní sítě

K předání portu kontejneru do konkrétní sítě musí uživatel zadat síť, ve které chce ke kontejneru přistupovat pomocí „ -síť “ možnost. Podívejte se na uvedené kroky pro demonstraci.

Krok 1: Vytvořte síť

Vytvořte novou síť pomocí „ vytvoření sítě docker “příkaz. Ve výchozím nastavení bude tato síť používat ovladač mostu:

docker network vytvořit mygo-network

Chcete-li zobrazit sítě Docker, použijte „ docker network ls 'příkaz:

docker síť ls

Zde jsme úspěšně vytvořili „ mygo-network “, který používá “ most ' Řidič:

Krok 2: Mapování sítě

Chcete-li spustit kontejner a přistupovat k němu v konkrétní síti pomocí techniky přesměrování portů, použijte níže uvedený příkaz:

docker spustit -p 8080 : 8080 --síť mygo-network golang-img

V daném příkazu je „ -p ” publikuje kontejner na zadaném portu zadané sítě. Zde, „ -síť ” se používá k definování dockerové sítě:

Pro ověření znovu přejděte na „ http://localhost:8080 ” a zkontrolujte, zda je kontejner přístupný v zadané síti nebo ne:

Výše uvedený výstup naznačuje, že jsme efektivně předali port kontejneru na konkrétní síť.

Poznámka: Při používání „hostitelské“ sítě uživatel nemusí publikovat port z kontejneru na hostitele pomocí „ -p “ nebo „ -publikovat “ možnost.

Přesměrování portu do konkrétní sítě pomocí Docker Compose

Přidejte následující úryvek do „ docker-compose.yml “. V níže uvedeném úryvku je „ sítí Klíč se používá k určení sítě:

verze: '3'
služby:

web:
stavět: .
porty:
- 8080 : 8080

Nyní spusťte aplikaci v kontejneru pomocí „ docker-compose up 'příkaz:

docker-compose up

Pokryli jsme metody pro přesměrování portů v Dockeru.

Závěr

K předání portu v Dockeru pro přístup k aplikaci dockerize mimo kontejner může uživatel buď použít „ -p “ nebo „ -publikovat “ možnost v “ docker spustit “ nebo může uživatel použít “ porty ” v souboru Docker Compose. Za účelem přístupu ke kontejneru v konkrétní síti může uživatel přeposlat port kontejneru v síti pomocí „ –network “ možnost. Tento blog demonstroval techniky předávání portů v Dockeru.