⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Réseau utilisant le réseau hôte

Cette série de tutoriels traite de la mise en réseau de conteneurs autonomes qui se lient directement au réseau de l'hôte Docker, sans isolation réseau. Pour d'autres sujets de réseau, voir la vue d'ensemble.

Objectif

L'objectif de ce tutoriel est de démarrer un conteneur nginx qui se lie directement au port 80 sur l'hôte Docker. Du point de vue réseau, c'est le même niveau d'isolation que si le processus nginx s'exécutait directement sur l' hôte Docker et non dans un conteneur. Cependant, de toutes les autres façons, comme le stockage, l'espace de noms de processus, et l'espace de noms utilisateur, le processus nginx est isolé de l' hôte.

Prérequis

  • Cette procédure nécessite que le port 80 soit disponible sur l'hôte Docker. Pour faire écouter Nginx sur un port différent, voir la documentation pour l'image nginx

  • Le pilote de réseau host ne fonctionne que sur les hôtes Linux, et comme une fonctionnalité opt-in dans Docker Desktop version 4.34 et ultérieures. Pour activer cette fonctionnalité dans Docker Desktop, naviguez vers l'onglet Ressources dans Paramètres, puis sous Réseau sélectionnez Activer le réseau hôte.

Procédure

  1. Créez et démarrez le conteneur comme un processus détaché. L'option --rm signifie supprimer le conteneur une fois qu'il se ferme/s'arrête. Le drapeau -d signifie démarrer le conteneur détaché (en arrière-plan).

    $ docker run --rm -d --network host --name my_nginx nginx
    
  2. Accédez à Nginx en naviguant vers http://localhost:80/.

  3. Examinez votre pile réseau en utilisant les commandes suivantes :

    • Examinez toutes les interfaces réseau et vérifiez qu'une nouvelle n'a pas été créée.

      $ ip addr show
      
    • Vérifiez quel processus est lié au port 80, en utilisant la commande netstat. Vous devez utiliser sudo car le processus appartient à l'utilisateur du démon Docker et vous ne pourrez pas voir son nom ou PID sinon.

      $ sudo netstat -tulpn | grep :80
      
  4. Arrêtez le conteneur. Il sera supprimé automatiquement car il a été démarré en utilisant l'option --rm.

    docker container stop my_nginx
    

Autres tutoriels de réseau