windows - 无法使用 docker (windows) 访问 .net core web 应用程序
问题描述
这真让我抓狂:
我从 VS2019 创建了一个新的 .Net Core Web 应用程序,添加了对 docker(linux 容器)的支持。一切正常:如果我从 VS 启动调试器,则构建映像,启动容器并且 Web 应用程序可在http://localhost:32772/weatherforecast 获得。
然后我把它全部清理干净,并尝试手动构建和运行:
docker build -t webapp2 --file webapplication2/Dockerfile .
docker run --name webapp2 -p 5000:5000 -t webapp2
(or even docker run --name webapp2 -p 5000:5000 -e "ASPNETCORE_ENVIRONMENT=Development" -t webapp2)
构建成功运行,并且(显然)运行命令也可以正常工作: 但是......惊喜......这样我就无法再访问应用程序了(在http://localhost:5000/weatherforecast)!
几乎尝试了任何东西,使用检查中的内部 IP 地址,更改端口并运行命令,添加 -e "ASPNETCORE_URLS= https://+:443;http://+:80 ",似乎没有任何效果。
那么问题来了:我们在 VS 调试命令背后有什么样的魔力?
我试图看看那里有什么,但我没有看到任何有用的东西:
docker run -dt -v "C:\Users\carlo\vsdbg\vs2017u5:/remote_debugger:rw" -v "C:\Progetti\prove\docker\API\WebApplication2:/app" -v "C:\Progetti\prove\docker\API:/src/" -v "C:\Users\carlo\.nuget\packages\:/root/.nuget/fallbackpackages2" -v "C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true" -e "ASPNETCORE_ENVIRONMENT=Development" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages2" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages;/root/.nuget/fallbackpackages2" -P --name WebApplication2 --entrypoint tail webapplication2:dev -f /dev/null
谢谢!
解决方案
将端口传递给docker run
并不会以某种方式覆盖他正在运行的应用程序的端口。您要说的是,您希望容器上的端口 5000 在网络上暴露为端口 5000。但是,您的应用程序在 80 上运行,因此您一无所获。你需要-p 80:5000
.
ASPNETCORE_URLS
环境变量只是配置应用程序 URL 的一种方式https://+:443;http://+:80
,默认情况下在容器中将绑定到该URL。再次将环境变量设置为相同的东西没有任何作用。您可以执行类似的操作http://+:5000
,然后将内部端口更改为 5000 而不是 80,然后您的原始docker run
命令就会起作用,因为端口 5000 上实际运行了一些东西。
推荐阅读
- javascript - 混淆了 promise 和 async/await
- scrapy - 使用带有规则的 start_requests 进行 Scrapy
- ubuntu - MariaDB 使用所有可用的内存
- python - 计算目录和子目录中的文件数
- php - Bootstrap Studio 需要哪些导出设置
- bash - 如何将可能包含引号和非 ASCII 字符的参数从 PowerShell 传递到外部程序?
- c# - 如何在单击按钮时执行 for 循环的每次迭代
- php - 如何选择一些具有特定值的行并在mysql中对它们进行排序
- grpc - grpc-go 上下文如何在客户端和服务器之间传输?
- c# - 使用 linq 设置自定义属性类值