58
votes

Les ports ne sont pas disponibles: Écoutez TCP 0.0.0.0/50070: Bind: Une tentative a été faite pour accéder à une prise d'une manière interdite par ses autorisations d'accès

J'essaie de démarrer un conteneur Docker avec la commande ci-dessous.

netstat -ano | findstr :50080

Il s'est retrouvé avec l'erreur suivante.

docker: Réponse d'erreur du démon: les ports ne sont pas disponibles: Écoutez TCP 0.0.0.0/50070: Bind: Une tentative a été faite pour accéder à une prise d'une manière interdite par ses autorisations d'accès.

Si je comprends bien, l'erreur s'est produite car le port 50070 est utilisé par un autre processus. J'ai essayé d'identifier le processus afin de tuer cela avec la commande ci-dessous dans l'invite de commande, mais elle ne donne pas de sortie ni d'erreur.

docker run -it -p 50070:50070 -p 8088:8088 -p 8080:8080 suhothayan/hadoop-spark-pig-hive:2.9.2 bash


8 Réponses :


36
votes

selon le problème Docker pour Windows https://github.com/docker/for- Win / Issues / 3171 :

Vous pourriez avoir ce port dans l'une des gammes de port exclues de la commande l'interface NETSH IPv4 affiche le protocole de Portange exclutRange = TCP

Vous pouvez utiliser la solution mentionnée dans le ticket ci-dessus.

  • Désactiver Hyper-V (qui nécessitera quelques redémarrages)

    dism.exe / en ligne / désactiver: Microsoft-hyper-v

  • Après avoir terminé tous les redémarrages requis, réservez le port que vous voulez, donc Hyper-V ne le réserve pas

    netsh int ipv4 Ajouter le protocole de Portange exclutRange = TCP startPort = 50070 NumberOfports = 1

  • Hyper-V réactivable (qui nécessitera quelques redémarrages)

    dism.exe / en ligne / Activer-Feature: Microsoft-hyper-v / all


  • 0 commentaires

    186
    votes

    Cette solution m'a aidé:

    net stop winnat
    docker start container_name
    net start winnat
    


    6 commentaires

    Remplacez ... par le nom de votre conteneur Docker.


    Cela n'explique pas pourquoi les choses échouent.


    Merci cela m'a aidé. J'étais confronté à la même erreur, j'ai exécuté la première commande (net stop winnat) en mode administrateur de Windows PowerShell puis, j'ai couru (docker-compose up --build -d) et à la fin j'ai exécuté la dernière commande (net start winnat).


    A travaillé pour moi, merci.


    Après avoir appliqué le net stop winnat, je ne peux plus atteindre Internet avec mon conteneur WSL2


    J'ai fonctionné pour moi, mais au lieu d'exécuter le conteneur avec Docker Start, j'ai utilisé Visual Studio (j'ai eu la même erreur sur VS2019).



    2
    votes

    Sur ma machine locale, avait un problème similaire avec Docker Desktop et l'intégration activés avec Debian / Ubuntu Set en tant que distribution par défaut (WSL2 en standard à tous). Comment j'ai résolu:

    • Paramètres Docker désactivés "Démarrer Docker Desktop lorsque vous vous connectez"
    • Redémarrer Windows
    • Première départ Debian / Ubuntu
    • Démarrez ensuite Docker Desktop

    0 commentaires

    50
    votes

    J'ai fait cela pour arrêter les processus TCP =>

    • net stop winnat
    • net start winnat

    De cette façon, le fonctionnement du port occupé est terminé.

    Cela a fonctionné pour moi.


    0 commentaires

    1
    votes

    J'ai fait face à cette situation lorsque ma connexion VPN est active.
    Vous pouvez déconnecter temporairement votre connexion VPN, après cela, recommencez votre Docker Container , et revenez à nouveau à votre VPN


    0 commentaires

    3
    votes

    Le redémarrage de Winnat n'est pas une bonne idée, la cause profonde est que certains ports de fenêtres sont réservés dynamiquement, même s'ils ne sont pas occupés. Cette commande peut être utilisée pour résoudre.

    netsh int ipv4 set dynamic tcp start=49152 num=16384
    netsh int ipv6 set dynamic tcp start=49152 num=16384
    

    Cet article l'explique en détail, et je vous recommande de le jeter.

    résolvez complètement le problème des conteneurs Docker en cours d'exécution sur Windows 10 en raison de la liaison de port A >


    1 commentaires

    Le lien a vraiment aidé à expliquer et semble être le moyen le plus approprié de résoudre le problème. La désactivation de Hyper-V semble être exagérée et des redémarrages supplémentaires.



    0
    votes

    Essayez de redémarrer "Host Network Service"


    0 commentaires

    0
    votes

    Ceci est souvent dû au pilote NAT Windows (Winnat), l'arrêt et le redémarrage de ce service peuvent résoudre le problème.

    Ouvrez Shell en tant qu'administrateur et tape ces commandes:

  • net stop winnat.
  • Docker Start ...
  • net start winnat

  • 1 commentaires

    Cette réponse avait déjà été fournie par CEPR0 l'année dernière.