Finally i made some time and wanted to try new Docker for Windows on Win10 Pro as a local LAMP development environment.
2 Days it worked nice with getting a hand on building and deploying docker images and containers, public and own ones. But than it comes, i couldn’t use any container on port 80.
Error:
root@:~/docker# docker run -d -p 80:80 nginx
5bc9eea2549fb3ed05388c******************
docker: Error response from daemon: driver failed programming external connectivity on endpoint trusting_chandrasekhar (d1aca4b71c38***********): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error Permission denied.
Oh man. It took me two days and almost gave up on it and throw the entire project away. No google helped, no long github threads or other sources. Appears a lot of people come across same or similar issues with multiple circumstances and reasons.
Usually all pointing out, „make sure no process is using the port already“.
Ok, so i used every known and found command for the hosting Windows box and for the WSL Linux box to analyze if there is any process taking that damn port 80 already.
None of the tools revealed anything. Restarting multiple times in multiple ways didn’t helped either. It all appeared to me, there is no such process taking any port like 80. So what am i doing wrong?
Thank to https://www.xcep.net/blog/tag/blockiert/ i finally got a hand on it.
In fact, there was a process taking the port 80 on my windows host.
I could only see by using Powershell with command:
Get-NetTCPConnection -LocalPort 80 | Format-List
And indeed, Process Id 4 was binding port 80.
Process Id 4, was the damn windows service: „WWW publishing service“ …who needs that :/
Damn kill that process… yipeah… docker container now would run on port 80!
Huray!!!
PS: To be restart save, i deinstalled Internetinformation services from the windows features, and in the task manager i changed this service to start „manual“ only.