Come inoltrare la porta in Docker

Come Inoltrare La Porta In Docker



Docker è una piattaforma di dockerizzazione molto apprezzata che dockerizza applicazioni e software in un ambiente isolato noto come contenitore. Durante l'esecuzione delle applicazioni nei contenitori, agli utenti viene solitamente richiesto di accedere all'applicazione inserita nel contenitore all'esterno del contenitore. A questo scopo, gli utenti devono applicare la tecnica del port forwarding.

Il port forwarding in Docker è un processo che ci consente di esporre la porta del contenitore sul sistema host Docker. Ci consente di eseguire l'applicazione in un ambiente isolato e di renderla accessibile anche dall'esterno del contenitore su una macchina utente.

Questo post dimostrerà:







Come inoltrare la porta in Docker utilizzando il tag '-p' o '-publish'.

Per inoltrare una porta in Docker, l'utente deve pubblicare la porta del contenitore sull'host Docker. A questo scopo, esegui il contenitore sull'host docker utilizzando il comando ' -P ' O ' -pubblicare ' nel tag ' esecuzione della finestra mobile 'comando.



Per una corretta dimostrazione, seguire le istruzioni seguenti.



Passaggio 1: crea Dockerfile

Innanzitutto, crea un file e imposta il suo nome come ' Dockerfile ”. Questo file contiene le istruzioni testuali per creare il template del contenitore Docker. Ad esempio, dockerizziamo il semplice programma Golang utilizzando lo snippet seguente nel Dockerfile:





DA Golang: 1.8

DIR.LAVORO / andare / src / app

COPIA main2.go .

CORRI, vai a costruire -O server web .

ESPORRE 8080

CMD [ './server web' ]

Nello snippet indicato:

  • DA Il comando viene utilizzato per impostare l'immagine di base.
  • DIR.LAVORO ' definisce la directory di lavoro del contenitore.
  • COPIA Il comando creerà una copia del file di programma nel percorso specificato dal contenitore.
  • CORRERE 'Il comando eseguirà il comando specificato nel contenitore.
  • ESPORRE Il comando specifica la porta su cui verrà ascoltato il contenitore.
  • CMD ' specifica i punti eseguibili del contenitore.

Passaggio 2: crea un programma Golang

Successivamente, crea un altro file denominato ' main2.go ' e incolla il programma Golang fornito di seguito che stampa una semplice stringa sulla porta ' 8080 ':



pacchetto principale

importare (

'fmt'

'tronco d'albero'

'rete/http'

)

gestore della funzione ( In http.ResponseWriter, r * http.Richiesta ) {

html := `

DOCTYPEhtml >

< html >

< Testa >

< titolo > Ciao Golang ! titolo >

< stile >

corpo {

colore di sfondo: #D2B48C;

}

.contenitore {

allineamento testo: centro;

imbottitura: 50px;

}

stile >

Testa >

< corpo >

< div classe = 'contenitore' >

< h1 > Ciao ! Benvenuti nel tutorial LinuxHint h1 >

div >

corpo >

html >`

w.Intestazione ( ) .Impostato ( 'Tipo di contenuto' , 'testo/html' )

fmt.Fprint ( In ,HTML )

}

funzione principale ( ) {

http.HandleFunc ( '/' , gestore )

log.Fatal ( http.ListenAndServe ( '0.0.0.0:8080' , zero ) )

}

Passaggio 3: genera l'istantanea del contenitore

Ora genera uno snapshot per il contenitore dal Dockerfile specificato sopra. A questo scopo, innanzitutto, accedere alla directory in cui viene creato il Dockerfile utilizzando il comando ' cd 'comando:

Successivamente, genera la nuova immagine del contenitore utilizzando il comando indicato:

compilazione della finestra mobile -T Golang-img.

Il risultato fornito mostra che l'immagine viene creata in base al contesto di compilazione fornito.

Passaggio 4: inoltrare la porta host alla porta container

Ora esegui il contenitore e inoltra la porta host alla porta del contenitore per accedere all'app dockerize all'esterno del contenitore su un computer locale. A questo scopo, eseguire il file 'docker run –name -p : 'comando:

esecuzione della finestra mobile --nome vai avanti -P 8080 : 8080 Golang-img

Ecco, il “ -P Il flag ' viene utilizzato per pubblicare la porta di esecuzione del contenitore sull'host docker:

Passaggio 5: verifica

Per verifica, visualizza i contenitori in esecuzione utilizzando ' finestra mobile ps ':

finestra mobile p.s

Nel risultato seguente, l'applicazione containerizzata è in ascolto sulle interfacce di rete disponibili ' 0.0.0.0 'sulla porta pubblicata' 8080 ”. Implica che la porta venga inoltrata all'applicazione in esecuzione sulla macchina host:

Ora avvia il browser e vai su “ http://localhost:8080/ ” e verificare se la tecnica del port forwarding è applicata o meno e se l'applicazione containerizzata è accessibile all'esterno del container sul sistema host:

Qui abbiamo inoltrato con successo la porta dell'host alla porta del container e l'applicazione è accessibile sull'host docker.

Come inoltrare la porta in Docker utilizzando Docker Compose

Per inoltrare la porta del contenitore all'host per accedere all'applicazione containerizzata dall'esterno del contenitore, l'utente può utilizzare il comando ' porta ' nel file yaml di composizione. Docker compose è un servizio Docker che ci consente di eseguire diversi servizi e applicazioni in diversi contenitori. Usando il ' docker-compose.yml ', l'utente può anche inoltrare la porta del container al computer host e avere una connessione dell'applicazione con il mondo esterno.

Controlla la procedura seguente per le illustrazioni.

Passaggio 1: crea il file di composizione

Innanzitutto, genera un file denominato ' docker-compose.yml ' e aggiungi il seguente contenuto al file:

versione: '3'

Servizi:

ragnatela:

costruire: .

porti:

- 8080 : 8080

Nello snippet sopra, il ' porti La chiave ' viene utilizzata per connettere l'host alla porta del container. In questo caso, il primo valore è la porta host e il secondo valore è la porta del container.

Passaggio 2: avvia l'app

Dopo aver specificato le istruzioni nel file di composizione, avviare l'applicazione in un contenitore utilizzando il pulsante ' docker-componi 'comando:

docker-componi

Passaggio 3: verifica

Per verifica, elenca i contenitori di composizione utilizzando il pulsante ' docker-compose ps 'comando:

docker-compose p.s -UN

Per verificare se il contenitore è accessibile sul computer host, vai alla sezione ' http://localhost:8080/ ' URL. Qui puoi vedere che abbiamo effettivamente inoltrato la porta del container sull'host:

Come inoltrare una porta a una rete specifica

Per inoltrare una porta del container a una rete specifica, l'utente deve specificare la rete su cui desidera accedere al container utilizzando il comando ' -rete ' opzione. Guarda i passaggi indicati per la dimostrazione.

Passaggio 1: crea una rete

Crea una nuova rete utilizzando il comando ' creazione della rete docker 'comando. Per impostazione predefinita, questa rete utilizzerà un bridge driver:

la rete docker crea la rete mygo

Per visualizzare le reti Docker, utilizzare il pulsante ' rete docker ls 'comando:

rete docker ls

Qui, abbiamo creato con successo “ mygo-rete ' cioè usare ' ponte ' autista:

Passaggio 2: mappare la rete

Per eseguire e accedere al contenitore sulla rete specifica utilizzando la tecnica del port forwarding, utilizzare il comando seguente:

esecuzione della finestra mobile -P 8080 : 8080 --rete mygo-network golang-img

Nel comando dato, il ' -P L'opzione 'pubblica il contenitore su una porta specificata della rete specificata. Ecco, il “ -rete L'opzione ' viene utilizzata per definire la rete docker:

Per la verifica, vai nuovamente alla sezione ' http://localhost:8080 ' porta e controlla se il contenitore è accessibile sulla rete specificata o meno:

L'output di cui sopra indica che abbiamo effettivamente inoltrato il porto del container su una rete specifica.

Nota: Durante l'utilizzo della rete 'host', l'utente non ha bisogno di pubblicare la porta dal contenitore all'host utilizzando il metodo ' -P ' O ' -pubblicare ' opzione.

Inoltra la porta a una rete specifica utilizzando Docker Compose

Aggiungi il seguente snippet nel campo ' docker-compose.yml ' file. Nel frammento di seguito, il ' reti La chiave ' viene utilizzata per specificare la rete:

versione: '3'
Servizi:

ragnatela:
costruire: .
porti:
- 8080 : 8080

Ora avvia l'applicazione in un contenitore utilizzando il pulsante ' docker-componi 'comando:

docker-componi

Abbiamo trattato i metodi per il port forwarding in Docker.

Conclusione

Per inoltrare la porta in Docker per accedere all'applicazione dockerize all'esterno del contenitore, l'utente può utilizzare il comando ' -P ' O ' -pubblicare 'opzione' nel ' esecuzione della finestra mobile ' oppure l'utente può utilizzare il comando ' porti ' nel file di composizione Docker. Per accedere al contenitore su una rete specifica, l'utente può inoltrare la porta del contenitore su una rete utilizzando il comando ' –rete ' opzione. Questo blog ha dimostrato le tecniche per inoltrare le porte in Docker.