我有一个使用默认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/