尝试访问容器化 .netcore3.1 天气预报应用程序时获取"localhost refused to connect."



我创建了一个.netcore 3.1 api应用程序,其中包含默认的WeatherForecast Controller。我创建了Dockerfile,如下所示:

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /build
COPY . .
RUN dotnet restore
RUN dotnet publish -c Release -o output
FROM mcr.microsoft.com/dotnet/core/sdk:3.1
WORKDIR /app
EXPOSE 5000
COPY --from=build-env /build/output .
ENTRYPOINT ["dotnet","AnotherSampleDockerExample.dll"]

我还有docker-compose.yml,它看起来如下:

version : '3'
services:
api:
image: dockerapi
container_name: docker_api
build:
context: .
ports: 
- 8080:80

我能够通过使用命令"dockercompose-up"成功地创建图像和容器。但当我尝试在Chrome浏览器上使用http://localhost:5000/WeatherForecast,浏览器返回

"This site can’t be reached
localhost refused to connect." error. 

此处需要帮助来调试此问题。谢谢

根据Dockerfile,您将暴露端口5000。因此,在您的docker-compose.yaml中,您应该更新从8080:808080:5000的端口映射,即您的文件应该如下所示:

version : '3'
services:
api:
image: dockerapi
container_name: docker_api
build:
context: .
ports: 
- 8080:5000

在您的机器上,现在应该可以通过http://localhost:8080/WeatherForecast访问该站点

相关内容

最新更新