我有一个使用默认WeatherForecast Controller 创建的.netcore 3.1 api应用程序。我已经创建了如下所示的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

我可以使用命令“docker-compose up”成功创建镜像和容器。但是,当我尝试使用http://localhost:5000/WeatherForecast在Chrome浏览器中访问它时,浏览器返回
"This site can’t be reached
localhost refused to connect." error.

在这里需要帮助来调试此问题。谢谢!

最佳答案

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

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

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

关于docker - 尝试访问容器化的.netcore3.1 WeatherForecast应用程序时获取 “localhost refused to connect.”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61022557/

10-16 05:30