Differenza tra esporre e porte nella composizione di Docker

Differenza tra esporre e porte nella composizione di Docker
Docker Compose è un componente principale di Docker che viene spesso utilizzato per configurare l'applicazione eseguita su più contenitori. Docker-compose è principalmente utilizzato per configurare i servizi di contenitori nel "Yaml" file. Chiavi diverse vengono utilizzate nella configurazione del servizio, "esporre" E "porti"Sono specificamente utilizzati per specificare la porta di esposizione per i contenitori.

Questo articolo spiegherà la differenza tra le porte ed esporrà il tasto in Docker Compose.

Differenza tra esporre e porte nella composizione di Docker

IL "esporre" E "porti"Le chiavi in ​​Docker Compose vengono utilizzate per configurare la rete e le porte di esposizione per il contenitore. Tuttavia, entrambe le chiavi vengono utilizzate per lo stesso scopo, ma la differenza chiave tra le "porte" ed "esporre" è che la chiave esporre è accessibile ai servizi connessi alla stessa rete ma non all'host. Al contrario, le porte sono accessibili e pubblicate sull'host e sulla rete connessa.

Controllando la differenza tra le chiavi "esporre" e "porte" in docker-compose praticamente

Per verificare la differenza tra esporre e porte chiave praticamente, passare attraverso gli esempi elencati:

  • Utilizzare "porti"Chiave nel file di composizione Docker
  • Utilizzare "esporre"Chiave nel file di composizione Docker

Esempio 1: utilizzare la chiave "porte" nel file di composizione docker

IL "porti"La chiave viene utilizzata per pubblicare il contenitore sulla macchina host. Questi contenitori sono accessibili a tutti i servizi che stanno eseguendo l'host e su una rete connessa.

Per utilizzare il tasto "Porte" in Docker Composi, controlla le istruzioni fornite.

Passaggio 1: creare un "docker-compone.YML "

Fare un "docker-compose.YML"File e incolla il blocco di codice seguente nel file:

Versione: "3"
Servizi:
ragnatela:
Immagine: nginx: ultimo
Porte:
- 8080: 80

Secondo lo snippet sopra:

  • "ragnatelaIl servizio "è configurato in"docker-compose.YML" file.
  • "Immagine"Definisce l'immagine di base per il contenitore di composizione
  • "porti"Specificare la porta di esposizione del contenitore su una rete e host:

Passaggio 2: avvia contenitori

Successivamente, crea e accendi il contenitore di compositore con l'aiuto di "Docker-Opse Up"Comando:

> docker -compose up -d

Passaggio 3: elenco compositore contenitore

Elenca il contenitore e verifica la porta di esposizione del contenitore. Dall'output, può osservare che abbiamo pubblicato il contenitore sull'host:

> Docker-compone PS

Esempio 2: utilizzare la chiave "Espose" nel file Docker-Opse

Per utilizzare la chiave esporre in "docker-compose.YML"File, dai un'occhiata alle istruzioni fornite.

Passaggio 1: creare un "docker-compone.YML "

Ora, configura il "ragnatela"Servizio sull'esposizione della porta 80 con l'aiuto di"esporre" chiave. Qui, non abbiamo definito alcuna rete per il contenitore:

Versione: "3"
Servizi:
ragnatela:
Immagine: nginx: ultimo
esporre:
- 8080: 80

Passaggio 2: accendi il contenitore

Quindi, creare e avviare il contenitore compose per eseguire il servizio Web utilizzando il comando fornito:

> docker -compose up -d

Passaggio 3: elenco compositore contenitore

Elenca il contenitore compose e controlla la porta esportato del contenitore. Dall'output seguente, è possibile osservare che il contenitore è accessibile solo sulla porta 80 su una rete selezionata predefinita ma non sull'host:

> Docker-compone PS

Abbiamo definito la distinzione di "esporre" E "porti"Chiavi in ​​Docker Componge.

Conclusione

IL "esporre" E "porti"Sono entrambi utilizzati per specificare la porta di esposizione del contenitore per eseguire servizi definiti. La principale differenza tra queste due chiavi è che le "porte" sono pubblicate e accessibili sulla macchina host e anche sulla rete specificata, mentre "esporre" è pubblicato solo sulla rete definita e accessibile dai servizi in esecuzione sulla stessa rete. Questo articolo ha dimostrato la distinzione tra "porte" ed "esporre" nella composizione di Docker.