Cosa fa davvero l'opzione -net = host nel comando Docker?

Cosa fa davvero l'opzione -net = host nel comando Docker?
Docker è un forum open source e ben consolidato che viene spesso utilizzato per creare, eseguire e distribuire applicazioni in contenitori. I contenitori sono pacchetti eseguibili che incapsulano le dipendenze e il codice dell'applicazione. Per distribuire l'applicazione containerizzata, è possibile eseguire questi contenitori su reti diverse, come host, bridge o reti definite dall'utente.

Questo articolo elaborerà ciò che il "-net = host"L'opzione fa nel comando Docker.

Cosa fa l'opzione "-net = host" nel comando Docker?

IL "-nettoOpzione "in"Docker Run"Il comando viene utilizzato per specificare la rete per il contenitore Docker. Per impostazione predefinita, i container sono in esecuzione sulla rete bridge. Comunque, il "-net = host"L'opzione può essere utilizzata per eseguire il contenitore sulla rete host. Dà al contenitore Docker più accesso alla rete di quanto non avrebbe in genere.

Come eseguire il comando "Docker run" con e senza l'opzione "-net = host"?

Per verificare la differenza tra i contenitori in esecuzione sulla rete predefinita e la rete host, guarda gli esempi elencati:

  • Usa il "Docker RunComando "senza il"-net-host" Opzione.
  • Usa il "Docker RunComando "con il"-net-host" Opzione.

Come utilizzare il comando "Docker run" senza l'opzione "-net-host"?

Per impostazione predefinita, la piattaforma Docker fornisce tre reti: "ponte","ospite", E "nessuno". Per elencare tutte le reti, dai un'occhiata all'esempio seguente:

> Docker Network LS

Quando il contenitore viene eseguito senza specificare alcuna rete, per impostazione predefinita, utilizzerà Bridge Networking. Per la dimostrazione, controlla i passaggi seguenti.

Passaggio 1: crea un file Docker

Crea un fikerfile per containerizzare il "Golang"Programma e incolla le istruzioni fornite nel file:

Da golang: 1.8
Workdir/go/src/app
Copia principale.andare .
Esegui GO Build -O Webserver .
Esporre 8080: 8080
Cmd ["./server web"]

Passaggio 2: crea l'immagine Docker

Successivamente, genera l'immagine da Dockerfile con l'aiuto del comando fornito. IL "-T"L'opzione nel comando seguente specifica il nome dell'immagine:

> Docker build -t go -img .

Passaggio 3: eseguire il contenitore Docker

Utilizzare il "Docker Run"Comando per eseguire il contenitore sulla rete selezionata predefinita. IL "-D"L'opzione esegue il contenitore in modalità distaccata:

> Docker run -d go -img

Ora elenca il contenitore e controlla se il contenitore viene eseguito sulla rete predefinita o meno:

> Docker PS -a

Se l'output mostra una porta di esposizione come "TCP/"Significa che il contenitore è in esecuzione su una rete predefinita e se non è presente output in"porti"Colonna o output come"0.0.0.0: 8080 → 8080/TCP"Significa che il contenitore sta eseguendo l'host:

Dall'output sopra, è possibile vedere che il nostro contenitore sta eseguendo sulla rete selezionata predefinita "ponte".

Come utilizzare il comando "Docker run" con l'opzione "-net-host"?

Per eseguire il contenitore sulla rete host, utilizzare il "-net = host"Opzione come mostrato di seguito:

> Docker run -d --net = host go -img

Per la verifica, elenca tutti i contenitori. Qui, nessuna output è mostrata in "porti"Colonna, il che significa che il nostro contenitore sta elaborando sulla rete host ed è possibile accedere in qualsiasi porta della rete host:

> Docker PS -a

Questo riguarda tutto ciò che il "-net = host"L'opzione lo fa e come usarla in Docker.

Conclusione

IL "-net = host"L'opzione viene utilizzata per eseguire il contenitore Docker sulla rete host. Se questa opzione non è specificata in "Docker Run"Comando, il suo contenitore medio eseguirà sulla rete bridge. Per eseguire il contenitore sull'host, utilizzare il "Docker run -net = opzione "Comando. Questo articolo ha dimostrato ciò che il "-net = host"L'opzione fa nel comando Docker.