最佳答案
为什么一个 aspnet 核心应用程序在80端口上运行,从 Docker 映像内部运行,而在 Docker 映像外部运行5000端口。
说详细点
我浏览了在这里找到的 aspnet core/docker 教程: Https://learn.microsoft.com/en-us/dotnet/core/docker/building-net-docker-images
Half way through the page, I start the application with the following as prescribed:
dotnet run
除此之外,这本书还印刷了这样的内容:
Now Listening on: http://localhost:5000
很好。我就知道会这样。本教程的下一步是从 Docker 映像中启动完全相同的应用程序。
docker build -t aspnetapp .
docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp
结果是
Now listening on: http://[::]:80
Wait. Wat? 为什么 aspnet 核心应用程序在端口80上运行? It was running on port 5000 when I ran it directly from the machine. There were no configuration file changes.
我怀疑它与基地码头图像有关,但还没有足够的熟练程度,在码头跟踪这一点。