簡體   English   中英

無法使用 docker (windows) 訪問 .net 核心 web 應用程序

[英]can't reach .net core web app using docker (windows)

這真讓我抓狂:

我從 VS2019 創建了一個新的 .Net Core Web App,添加了對 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 "AS.NETCORE_URLS= https://+:443;http://+:80 ",似乎沒有任何效果。

那么問題來了:我們在 VS debug 命令的背后有什么樣的魔力?

我試着看看那里有什么,但我沒有看到任何有用的東西:

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 暴露為 .network 上的端口 5000。 但是,您的應用程序在 80 上運行,所以這對您沒有任何好處。 你需要-p 80:5000

AS.NETCORE_URLS環境變量只是配置應用程序 URL 的方法,在容器中默認綁定到https://+:443;http://+:80 再次將環境變量設置為相同的東西什么都不做。 您可以執行http://+:5000之類的操作,然后將內部端口更改為 5000 而不是 80,然后您原來的docker run命令就會起作用,因為端口 5000 上實際上正在運行一些東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM