So leiten Sie den Port in Docker weiter

So Leiten Sie Den Port In Docker Weiter



Docker ist eine beliebte Dockerisierungsplattform, die Anwendungen und Software in einer isolierten Umgebung, einem sogenannten Container, andockt. Beim Ausführen von Anwendungen in Containern müssen Benutzer normalerweise außerhalb des Containers auf die Containeranwendung zugreifen. Zu diesem Zweck müssen Benutzer die Portweiterleitungstechnik anwenden.

Die Portweiterleitung in Docker ist ein Prozess, der es uns ermöglicht, den Container-Port auf dem Docker-Hostsystem verfügbar zu machen. Es ermöglicht uns, die Anwendung in einer isolierten Umgebung auszuführen und sie auch von außerhalb des Containers auf einem Benutzercomputer zugänglich zu machen.

Dieser Beitrag zeigt:







So leiten Sie den Port in Docker mit dem Tag „-p“ oder „–publish“ weiter

Um einen Port in Docker weiterzuleiten, muss der Benutzer den Container-Port auf dem Docker-Host veröffentlichen. Führen Sie dazu den Container auf dem Docker-Host aus mit dem Befehl „ -P ' oder ' -veröffentlichen ”-Tag im „ Docker-Lauf ' Befehl.



Befolgen Sie für eine ordnungsgemäße Demonstration die folgenden Anweisungen.



Schritt 1: Dockerfile erstellen

Erstellen Sie zunächst eine Datei und geben Sie als Namen „ Docker-Datei “. Diese Datei enthält die Textanweisungen zum Erstellen der Vorlage des Docker-Containers. Lassen Sie uns zum Beispiel das einfache Golang-Programm mit dem folgenden Snippet in der Docker-Datei andocken:





VON golang: 1.8

ARBEITSVERZEICHNIS / gehen / src / App

KOPIEREN main2.go .

LAUF, geh bauen Webserver.

EXPONIEREN 8080

CMD [ './webserver' ]

Im angegebenen Ausschnitt:

  • AUS Der Befehl „wird verwendet, um das Basisbild festzulegen.
  • ARBEITSVERZEICHNIS „definiert das Arbeitsverzeichnis des Containers.
  • KOPIEREN Der Befehl „erstellt eine Kopie der Programmdatei im vom Container angegebenen Pfad.
  • LAUFEN Der Befehl „Führt den angegebenen Befehl im Container aus.
  • EXPONIEREN Der Befehl gibt den Port an, an dem der Container abgehört wird.
  • CMD ” gibt die ausführbaren Punkte des Containers an.

Schritt 2: Erstellen Sie ein Golang-Programm

Als nächstes erstellen Sie eine weitere Datei mit dem Namen „ main2.go ” und fügen Sie das unten bereitgestellte Golang-Programm ein, das eine einfache Zeichenfolge auf Port druckt „ 8080 ”:



Paket main

importieren (

„fmt“

'Protokoll'

„net/http“

)

Funktionshandler ( In http.ResponseWriter, r * http.Anfrage ) {

html := `

DOCTYPE html >

< html >

< Kopf >

< Titel > Hallo Golang ! Titel >

< Stil >

Körper {

Hintergrundfarbe: #D2B48C;

}

.Container {

Textausrichtung: Mitte;

Polsterung: 50px;

}

Stil >

Kopf >

< Körper >

< div Klasse = 'Container' >

< h1 > Hallo ! Willkommen beim LinuxHint-Tutorial h1 >

div >

Körper >

html >`

w.Header ( ) .Satz ( 'Inhaltstyp' , „text/html“ )

fmt.Fprint ( In , html )

}

Funktion main ( ) {

http.HandleFunc ( „/“ , Handler )

log.Fatal ( http.ListenAndServe ( „0.0.0.0:8080“ , null ) )

}

Schritt 3: Container-Snapshot erstellen

Generieren Sie nun einen Snapshot für den Container aus der oben angegebenen Docker-Datei. Navigieren Sie dazu zunächst mit dem Befehl „ in das Verzeichnis, in dem die Docker-Datei erstellt wird. cd ' Befehl:

Als nächstes generieren Sie das neue Container-Image mit dem angegebenen Befehl:

Docker-Build -T golang-img .

Das angegebene Ergebnis zeigt, dass das Image gemäß dem bereitgestellten Build-Kontext erstellt wird.

Schritt 4: Host-Port an Container-Port weiterleiten

Führen Sie nun den Container aus und leiten Sie den Host-Port an den Container-Port weiter, um außerhalb des Containers auf einem lokalen Computer auf die Dockerize-App zuzugreifen. Führen Sie dazu die aus „docker run –name -p : ' Befehl:

Docker-Lauf --Name go-cont -P 8080 : 8080 golang-img

Hier das ' -P Das Flag „“ wird verwendet, um den Container-Ausführungsport auf dem Docker-Host zu veröffentlichen:

Schritt 5: Verifizierung

Sehen Sie sich zur Überprüfung die laufenden Container an, indem Sie „ Docker PS ”:

Docker PS

Im folgenden Ergebnis überwacht die Containeranwendung verfügbare Netzwerkschnittstellen. 0.0.0.0 „auf veröffentlichtem Port“ 8080 “. Dies bedeutet, dass der Port an die laufende Anwendung auf dem Host-Computer weitergeleitet wird:

Starten Sie nun den Browser und navigieren Sie zu „ http://localhost:8080/ ” und überprüfen Sie, ob die Portweiterleitungstechnik angewendet wird oder nicht und ob auf die Containeranwendung außerhalb des Containers auf dem Hostsystem zugegriffen werden kann:

Hier haben wir den Host-Port erfolgreich an den Container-Port weitergeleitet und die Anwendung ist auf dem Docker-Host zugänglich.

So leiten Sie den Port in Docker mit Docker Compose weiter

Um den Container-Port an den Host weiterzuleiten, um von außerhalb des Containers auf die Container-Anwendung zuzugreifen, kann der Benutzer die Option „ Hafen ” Geben Sie die Compose-Yaml-Datei ein. Docker Compose ist ein Docker-Dienst, der es uns ermöglicht, verschiedene Dienste und Anwendungen in verschiedenen Containern auszuführen. Verwendung der ' docker-compose.yml ”-Datei kann der Benutzer den Container-Port auch an den Host-Computer weiterleiten und eine Anwendungsverbindung zur Außenwelt herstellen.

Schauen Sie sich das folgende Verfahren zur Veranschaulichung an.

Schritt 1: Erstellen Sie eine Compose-Datei

Erstellen Sie zunächst eine Datei mit dem Namen „ docker-compose.yml ”-Datei und fügen Sie der Datei den folgenden Inhalt hinzu:

Ausführung: '3'

Dienstleistungen:

Netz:

bauen: .

Häfen:

- 8080 : 8080

Im obigen Ausschnitt ist das „ Häfen Der Schlüssel „“ wird verwendet, um den Host mit dem Container-Port zu verbinden. Hier ist der erste Wert der Host-Port und der zweite Wert der Container-Port.

Schritt 2: App starten

Nachdem Sie die Anweisungen in der Erstellungsdatei angegeben haben, starten Sie die Anwendung in einem Container mit dem Befehl „ Docker-Komponieren ' Befehl:

Docker-Komponieren

Schritt 3: Verifizierung

Listen Sie zur Überprüfung die Compose-Container mit dem Befehl „ auf. Docker-Compose ps ' Befehl:

Docker-Compose PS -A

Um zu überprüfen, ob der Container auf dem Host-Computer zugänglich ist, navigieren Sie zu „ http://localhost:8080/ ” URL. Hier können Sie sehen, dass wir den Container-Port effektiv auf den Host weitergeleitet haben:

So leiten Sie den Port an ein bestimmtes Netzwerk weiter

Um einen Container-Port an ein bestimmtes Netzwerk weiterzuleiten, muss der Benutzer das Netzwerk angeben, in dem er auf den Container zugreifen möchte, indem er „ -Netzwerk ' Möglichkeit. Schauen Sie sich zur Demonstration die angegebenen Schritte an.

Schritt 1: Erstellen Sie ein Netzwerk

Erstellen Sie ein neues Netzwerk mit „ Docker-Netzwerk erstellen ' Befehl. Standardmäßig verwendet dieses Netzwerk einen Bridge-Treiber:

Docker-Netzwerk erstellt Mygo-Netzwerk

Um die Docker-Netzwerke anzuzeigen, verwenden Sie „ Docker-Netzwerk ls ' Befehl:

Docker-Netzwerk ls

Hier haben wir erfolgreich „ mygo-netzwerk ” das ist die Verwendung von „ Brücke ” Fahrer:

Schritt 2: Netzwerk zuordnen

Um den Container mithilfe der Portweiterleitungstechnik in einem bestimmten Netzwerk auszuführen und darauf zuzugreifen, verwenden Sie den folgenden Befehl:

Docker-Lauf -P 8080 : 8080 --Netzwerk mygo-network golang-img

Im gegebenen Befehl ist das „ -P Die Option „veröffentlicht den Container auf einem angegebenen Port des angegebenen Netzwerks. Hier das ' -Netzwerk Die Option „wird verwendet, um das Docker-Netzwerk zu definieren:

Navigieren Sie zur Überprüfung erneut zu „ http://localhost:8080 ”-Port und prüfen Sie, ob der Container im angegebenen Netzwerk erreichbar ist oder nicht:

Die obige Ausgabe zeigt an, dass wir den Container-Port effektiv an ein bestimmtes Netzwerk weitergeleitet haben.

Notiz: Bei Verwendung des „Host“-Netzwerks muss der Benutzer den Port nicht vom Container zum Host veröffentlichen, indem er „ -P ' oder ' -veröffentlichen ' Möglichkeit.

Leiten Sie den Port mithilfe von Docker Compose an ein bestimmtes Netzwerk weiter

Fügen Sie den folgenden Ausschnitt in „ docker-compose.yml ' Datei. Im folgenden Snippet ist das „ Netzwerke Mit der Taste „“ wird das Netzwerk angegeben:

Ausführung: '3'
Dienstleistungen:

Netz:
bauen: .
Häfen:
- 8080 : 8080

Starten Sie nun die Anwendung in einem Container mit dem Befehl „ Docker-Komponieren ' Befehl:

Docker-Komponieren

Wir haben die Methoden zur Portweiterleitung in Docker behandelt.

Abschluss

Um den Port in Docker für den Zugriff auf die Dockerize-Anwendung außerhalb des Containers weiterzuleiten, kann der Benutzer entweder die „ -P ' oder ' -veröffentlichen ”-Option in der „ Docker-Lauf ”-Befehl oder der Benutzer kann den „ Häfen Geben Sie die Docker-Compose-Datei ein. Um auf den Container in einem bestimmten Netzwerk zuzugreifen, kann der Benutzer den Container-Port in einem Netzwerk weiterleiten, indem er „ –network ' Möglichkeit. In diesem Blog wurden die Techniken zum Weiterleiten von Ports in Docker demonstriert.