WSL 2 docker .NET容器无法绑定到地址http://[::]:80:地址已在使用中

zkure5ic  于 2023-04-20  发布在  Docker
关注(0)|答案(3)|浏览(107)

有几个类似的问题,但我不认为这是确切的一个。
我所有的本地开发容器昨天都在各自的:80和:443端口上运行得很好。这是使用docker-compose启动它们,也是在Visual Studio的调试模式下启动的。
今天早上我突然得到以下错误:
未处理的异常。System.IO.IOException:无法绑定到地址http://[::]:80:地址已在使用中。
仅供参考,所有这些完全相同的容器和配置此时在我的另一台机器上运行(iidoEe.笔记本电脑),所以这是一个机器特定的问题。
我正在使用WSL 2和最新版本的Docker Desktop(使用WSL 2引擎)。
我昨天确实做了最新的Windows累积更新,但做了之后,事情仍然运行良好。
我已经运行了以下命令来查看是否有任何东西正在使用端口80:

sudo lsof -i :80

而且没有结果(我假设这意味着端口上没有运行任何东西)。
我已经运行了以下命令来检查没有其他容器也在运行:

docker ps

我已经停止并重新启动了从Docker到我的整个机器的所有东西。
我的docker override文件有以下ASP设置:

- ASPNETCORE_URLS=https://+:443;http://+:80

毫不奇怪,删除http://+:80解决了我的问题,我的容器使用443端口启动。
我完全不知道是什么原因导致了这个问题,虽然我可以很高兴地使用:443端口,但最好能弄清楚发生了什么并解决它。

bprjcwpo

bprjcwpo1#

我在Docker Desktop 4.13.0和4.18.0上遇到了同样的问题。在我的情况下,由于WSL自动升级到1.2.0版本,出现了这个问题。
检查WSL Releases,我可以看到这个版本现在被标记为预发布,这让我相信它曾经被设置为最新,但后来被降级为预发布
检查您的WSL版本:

wsl --version

在升级到WSL的最新预发布版本后,我使用以下命令修复了此问题:

wsl --update --pre-release

这将升级到最新的预发布版本,但值得检查当前可用的稳定版本。可能问题已修复,新的稳定版本已经发布。

lztngnrs

lztngnrs2#

编辑:忽略我的回答,因为问题又回来了。
我遇到了这个问题,并通过升级到版本4.18.0(104112)然后运行“重置为出厂默认值”来解决它。我不确定简单的升级是否可以修复这个bug,因为我没有独立地尝试每个步骤。请注意,在新版本的发行说明中没有提到这个bug被修复。
祝你好运!

qgelzfjb

qgelzfjb3#

我的主机上的本地IIS使用端口80,我暂时解决了这个问题(直到问题的根本原因得到修复),通过将默认网站的端口更改为81,如下所示:

相关问题