Quando si avvia un contenitore con Docker, tutte le applicazioni nel contenitore vengono eseguite su porte specifiche. Se si desidera utilizzare un numero di porta per accedere a un'applicazione specifica, è necessario mappare prima il numero di porta del contenitore al numero di porta dell'host Docker. I container possono utilizzare le mappature delle porte per inviare e ricevere il traffico attraverso le porte sull'istanza del contenitore host. Le mappature porta del contenitore sono definite come parte della definizione del contenitore. Il numero di porta sul contenitore connesso alla porta host è stato scelto dall'utente o assegnato automaticamente.
I container in Docker possono avere le loro applicazioni in esecuzione sulle porte. Quando si esegue un contenitore, è necessario mappare il numero di porta del contenitore sul numero di porta dell'host Docker se si desidera collegare l'applicazione del contenitore tramite un numero di porta. In questo tutorial, ti spiegheremo sulla mappatura di una porta host a una porta di container in Docker.
Prerequisiti
Per mappare una porta host su una porta container, è necessario installare Ubuntu 20.04 Sistema operativo. Inoltre, assicurati che il docker sia installato su di esso. Altrimenti, l'intero tutorial non sarà costruttivo per te. Se non hai attualmente installato Docker, puoi farlo semplicemente eseguendo il comando sotto scrittura nel terminale della riga di comando.
$ sudo APT Installa Docker.ioAbbiamo avviato il comando con la parola chiave "sudo" che significa che devi avere i diritti di accesso utente root per scopi di installazione.
Metodo per mappare una porta host su una porta container in Docker
Per mappare una porta host su una porta container in Docker, inizialmente, è necessario aprire la shell della riga di comando nel sistema operativo. È possibile aprirlo cercando nel menu dell'applicazione digitando la parola chiave "terminale" nella barra di ricerca o utilizzando il tasto di scelta rapida "Ctrl+Alt+T". Una volta aperto, è necessario scrivere il comando sotto l'elenco per eseguire l'immagine denominata "nginx" con il -P bandiera.
$ sudo Docker run -td -p nginxDato che abbiamo usato la parola chiave "sudo" all'inizio del comando, il sistema chiederà la password. Dopo aver fornito la password, l'immagine richiesta verrà creata. Ora è il momento di visualizzare le immagini di Docker. Usa il comando aggiunto di seguito per completare l'attività.
$ sudo Docker PSCome visualizzato nell'immagine allegata sopra, è possibile vedere l'ID contenitore, l'immagine, il comando, il tempo di creazione e lo stato insieme al numero di porta. Abbiamo evidenziato il numero di porta di "nginx" ovvero: 49153-> 80.
Ora eseguiremo il comando menzionato di seguito:
$ sudo Docker run -td -p nginxUna volta eseguito correttamente, devi elencare di nuovo le immagini utilizzando questo comando.
$ sudo Docker PSCome evidenziato nell'immagine, è possibile verificare che il valore sia stato incrementato di 1 che è 49154-> 80. Ora, dovresti controllare l'immagine con il comando Docker Ispect per vedere quali porte espone il contenitore. È necessario eseguire il seguente comando aggiunto nella finestra del terminale.
$ sudo docker ispeziona nginxIl comando ispect restituisce un oggetto JSON di conseguenza. Possiamo vedere un pezzo di "Exposedports" nell'output se guardiamo da vicino l'immagine allegata visualizzata sopra. È necessario aggiornare il comando Docker Run per includere l'opzione '-P', che indica la mappatura delle porte, per eseguire NGINX e mappare le porte. Di conseguenza, è necessario implementare il seguente comando aggiunto.
$ sudo Docker run -p 80:80 -P 50:50 NGINXLa porta host Docker su cui mappare si trova principalmente sul lato sinistro della mappatura del numero di porta, mentre il numero di porta del contenitore Docker sarebbe sul lato destro. Noterai Nginx Up and Operating quando si avvia il browser e vai all'host Docker sulla porta 80.
Conclusione
In questa guida, abbiamo imparato a mappare una porta host a una porta di container in Docker. Credo che ora sarai in grado di mappare facilmente una porta host su una porta di container in Docker esaminando questo tutorial.