This all started out with Docker failing to start because binding the port wasn't permitted
Now, this isn't the best article, as it was written half from memory, and half from command history, but hopefully it will help somebody!
I tried to find out what ports were in use with
netsh int ipv4 show excludedportrange protocol=tcpThis confirmed that the port I couldn't bind to was in the range of ports that were excluded.
Next I used:
Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcessThis showed me that the process that was using the port was System.
Unfortunately this didn't help me find out what was using the port!
At this point I checked the response headers from the request to the port and found that the Server header was set to Microsoft-IIS/10.0.
At this point it clicked that IIS had somehow been installed on my machine and was using the port!
I tried to launch IIS Manager, but for some reason it wasn't installed!
I then enabled IIS Manager in the Windows Features and launched it.
I then found the site that was using the port changed the port and restarted the site.
At this point I was able to start Docker again, and all was working as expected!