我正在尝试使用官方Microsoft asp.net core 2.1映像在docker容器中运行我的asp.net core wep应用程序。我的应用程序使用端口5000公开api。该端口在 appSettings.json
的自定义部分中配置这是我使用的docker命令
docker container run --rm -p 5000:5000 -v C:\Build\MyApp:/build -w /build --name coreApp mcr.microsoft.com/dotnet/core/aspnet:2.1 dotnet MyApp.dll
Insinde容器日志,我得到了以下
warn: Microsoft.AspNetCore.Server.Kestrel[0]
Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.
Hosting environment: Production
Content root path: /build
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
当我尝试转到http://localhost:5000时,我会得到 ERR_EMPTY_RESPONSE 。似乎容器未在容器内部将本地端口5000映射到5000
答案 0 :(得分:1)
警告:Microsoft.AspNetCore.Server.Kestrel [0] 无法绑定到IPv6环回接口上的http://localhost:5000:“无法分配请求的地址”。
此警告是关键。
假设您正在使用.UseUrls()
,请在配置中尝试"http://0.0.0.0:5000"
或"http://+:5000"
。