I had a similar issue with Docker for Windows and Hyper-V having reserved ports for its own use- in my case, it was port 3001
that couldn’t be accessed.
- The port wasn’t be used by another process- running
netstat -ano | findstr 3001
in an Administrator Powershell prompt showed nothing. - However,
netsh interface ipv4 show excludedportrange protocol=tcp
showed that the port was in one of the exclusion ranges.
I was able to follow the solution described in Docker for Windows issue #3171 (Unable to bind ports: Docker-for-Windows & Hyper-V excluding but not using important port ranges):
-
Disable Hyper-V:
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
-
After the required restarts, reserve the port you want so Hyper-V doesn’t reserve it back:
netsh int ipv4 add excludedportrange protocol=tcp startport=3001 numberofports=1
-
Reenable Hyper-V:
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
After this, I was able to start my docker container.