Développeurs

Impossible d’accéder à un conteneur Docker depuis le Mac

Sur Mac, Docker exécute les conteneurs dans une machine virtuelle Linux. Pour joindre un conteneur depuis macOS, on publie généralement un port sur localhost.

S’applique à : Docker Desktop et OrbStack sur les versions actuelles de macOS.Vérifié le 29 octobre 2026

Symptômes

  • curl localhost:8080 échoue, mais le service fonctionne à l’intérieur du conteneur.
  • Impossible d’envoyer un ping ou de se connecter à l’adresse IP du conteneur.
  • Aucune interface docker0 n’apparaît sur le Mac.
  • Le service fonctionne sous Linux mais pas sur le Mac.

Causes probables

  • Le port n’est pas publié. Sans -p, Docker Desktop ne transfère pas le port vers le Mac.
  • Adresses IP des conteneurs sur Docker Desktop. La documentation de Docker Desktop indique que son réseau bridge n’est pas joignable depuis l’hôte.
  • Le service écoute sur 127.0.0.1 dans le conteneur. Seul le conteneur lui-même peut alors s’y connecter.
  • Une mauvaise paire de ports. Dans -p 8080:80, 8080 est le port du Mac et 80 celui du conteneur.

Comment vérifier

  1. Listez les conteneurs en cours d’exécution et leurs ports publiés.

    docker ps

    Résultat La colonne PORTS affiche des paires comme 0.0.0.0:8080->80/tcp. Aucune paire signifie que le port n’est pas publié.

  2. Affichez les ports publiés d’un conteneur.

    docker port my-container
  3. Testez le service depuis l’intérieur du conteneur, si l’image contient wget. Une réponse signifie que le service fonctionne.

    docker exec my-container wget -qO- http://localhost:80
  4. Voyez quel processus du Mac écoute sur le port.

    lsof -nP -iTCP:8080 -sTCP:LISTEN

Comment corriger

  1. Démarrez le conteneur avec un port publié. Le premier nombre est le port du Mac.

    docker run -d -p 8080:80 nginx
  2. Connectez-vous depuis le Mac avec localhost et le port du Mac.

    curl http://localhost:8080
  3. Faites écouter le service du conteneur sur 0.0.0.0, et non sur 127.0.0.1. Consultez sa documentation pour le réglage.

  4. Si le port du Mac est occupé, choisissez-en un autre. Consultez Port déjà utilisé sur un Mac.

  5. Avec OrbStack, vous pouvez aussi utiliser l’adresse IP du conteneur ou son nom container-name.orb.local.

Avec Kilobat

  1. Les vérifications de Kilobat s’exécutent sur le Mac. Utilisez --context container quand le code qui échoue tourne dans un conteneur. Le rapport se termine alors par une commande à y lancer.

    kilobat why http://localhost:8080 --context container

Questions

Pourquoi ne puis-je pas envoyer de ping à un conteneur sur Docker Desktop ?

La documentation de Docker indique que Docker Desktop ne peut pas acheminer le trafic du Mac vers les conteneurs Linux. Publiez plutôt un port.

OrbStack fonctionne-t-il différemment ?

Oui. La documentation d’OrbStack indique que vous pouvez vous connecter aux conteneurs depuis le Mac par leur adresse IP et par leurs noms .orb.local.

Sources

Sources vérifiées le 29 octobre 2026. Les pages man sont celles installées avec macOS ; ouvrez-en une avec man <name> dans Terminal.