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 :
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
Cette solution m'a aidé:
net stop winnat docker start container_name net start winnat
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).
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:
J'ai fait cela pour arrêter les processus TCP =>
De cette façon, le fonctionnement du port occupé est terminé.
Cela a fonctionné pour moi.
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
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.
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.
Essayez de redémarrer "Host Network Service"
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:
Cette réponse avait déjà été fournie par CEPR0 l'année dernière.
Est-ce que cela répond à votre question? Une tentative a été faite pour accéder à une prise d'une manière interdite par ses autorisations d'accès