Que fait vraiment «-net = host» dans la commande docker?

Que fait vraiment «-net = host» dans la commande docker?
Docker est un forum open-source et bien établi qui est fréquemment utilisé pour créer, exécuter et distribuer des applications dans des conteneurs. Les conteneurs sont des packages exécutables qui résument les dépendances et le code des applications. Pour déployer l'application conteneurisée, vous pouvez exécuter ces conteneurs sur différents réseaux, tels que l'hôte, le pont ou les réseaux définis par l'utilisateur.

Cet article expliquera ce que le «-net = hôte«L'option fait dans la commande docker.

Que fait l'option «-net = host» dans la commande docker?

Le "-filet”Option dans le"run docker»La commande est utilisée pour spécifier le réseau pour le conteneur Docker. Par défaut, les conteneurs fonctionnent sur le réseau de ponts. Cependant, le "-net = hôte«L'option peut être utilisée pour exécuter le conteneur sur le réseau hôte. Il donne au conteneur docker plus d'accès au réseau qu'il n'aurait généralement.

Comment exécuter la commande «docker run» avec et sans l'option «-net = host»?

Pour vérifier la différence entre les conteneurs fonctionnant sur le réseau par défaut et le réseau hôte, consultez les exemples répertoriés:

  • Utilisez le "run docker«Commande sans le«-hôte de filet" Option.
  • Utilisez le "run docker«Commande avec le«-hôte de filet" Option.

Comment utiliser la commande «docker run» sans l'option «-net-host»?

Par défaut, la plate-forme Docker fournit trois réseaux: «pont","héberger", et "aucun". Afin de répertorier tous les réseaux, jetez un œil à l'exemple ci-dessous:

> Docker Network LS

Lorsque le conteneur est exécuté sans spécifier de réseau, par défaut, il utilisera le réseau de ponts. Pour la démonstration, consultez les étapes ci-dessous.

Étape 1: Faire un dockerfile

Faites un dockerfile pour conteneuriser le «golang»Programmez et collez les instructions données dans le fichier:

De Golang: 1.8
Workdir / go / src / app
Copier principal.aller .
Exécuter Go Build -O Webserver .
Exposer 8080: 8080
CMD ["./serveur Web"]

Étape 2: construire l'image docker

Ensuite, générez l'image à partir de dockerfile à l'aide de la commande fournie. Le "-t«L'option dans la commande ci-dessous spécifie le nom de l'image:

> docker build -t go-iMg .

Étape 3: Exécutez le conteneur Docker

Utilisez le «run docker”Commande pour exécuter le conteneur sur le réseau sélectionné par défaut. Le "-d»L'option exécute le conteneur en mode détaché:

> docker run -d go-iMg

Maintenant, répertoriez le conteneur et vérifiez si le conteneur est exécuté sur le réseau par défaut ou non:

> docker ps -a

Si la sortie affiche un port d'exposition comme "TCP /"Cela signifie que le conteneur s'exécute sur un réseau par défaut et s'il n'y a pas de sortie dans"ports"Colonne ou sortie comme"0.0.0.0: 8080 → 8080 / TCP«Cela signifie que le conteneur s'exécute sur l'hôte:

À partir de la sortie ci-dessus, vous pouvez voir que notre conteneur s'exécute sur le réseau sélectionné par défaut "pont".

Comment utiliser la commande "docker run" avec l'option "-net-host"?

Afin d'exécuter le conteneur sur le réseau hôte, utilisez le "-net = hôte«Option comme indiqué ci-dessous:

> docker run -d --net = host go-iMg

Pour la vérification, listez tous les conteneurs. Ici, aucune sortie n'est indiquée dans le «ports”Colonne, ce qui signifie que notre conteneur traite sur le réseau hôte et peut être accessible dans n'importe quel port du réseau hôte:

> docker ps -a

Il s'agit de ce que le «-net = hôte«L'option fait et comment l'utiliser dans Docker.

Conclusion

Le "-net = hôte"L'option est utilisée pour exécuter le conteneur Docker sur le réseau hôte. Si cette option n'est pas spécifiée dans le «run docker»Commande, son conteneur moyen s'exécutera sur le réseau de ponts. Pour exécuter le conteneur sur l'hôte, utilisez le «docker run -net = option " commande. Cet article a démontré ce que le «-net = hôte«L'option fait dans la commande docker.