Docker容器中的“dotnet运行”导致无法访问的url

我正在尝试使用ASP.Net Core和Dockerbuild立一个开发环境。 图像生成正确,并且容器运行没有问题。 但是,即使我已经为主机和容器指定端口为5000,但是dotnet仍然以不包含指定端口的URL启动服务器,也不可访问。 我期待听众在: http://localhost:5000

docker-compose up结果在:

 Recreating netcore_ms1_1 ... Recreating netcore_ms1_1 ... done Attaching to netcore_ms1_1 ms1_1 | Hosting environment: Production ms1_1 | Content root path: /app ms1_1 | Now listening on: http://[::]:80 ms1_1 | Application started. Press Ctrl+C to shut down. 

我的应用程序只是一个示例dotnet new web应用程序模板。 这里是我的Dockerfile和docker-compose.yml文件:

Dockerfile

 FROM microsoft/aspnetcore-build:2.0.0-jessie WORKDIR /app EXPOSE 5000 ENTRYPOINT ["dotnet", "run", "--server.urls", "http://0.0.0.0:5000"] 

泊坞窗,compose.yml

 version: '3' services: ms1: build: ./ms1 ports: - "5000:5000" volumes: - ./ms1:/app:Z 

有人能指出我缺less的东西吗?

附加问题

我将如何继续在Docker容器中运行Dotnet Watcher工具,更具体地说是运行dotnet watch run并观察已安装卷中的文件更改./ms1?

在此先感谢,任何帮助,非常感谢。

当使用microsoft/aspnetcore-buildmicrosoft/aspnetcore ,图像被预先configuration为公开端口80.像这样启动你的容器:

 FROM microsoft/aspnetcore-build:2.0.0-jessie WORKDIR /app ENTRYPOINT ["dotnet", "run"] 

在命令行上,

 docker run -p 5000:80 

或者在docker-compose.yml中,

 ports: - "5000:80" 

此默认值来自microsoft/aspnetcore图像的定义,它将ASPNETCORE_URL环境variables设置为http://+:80

 ENV ASPNETCORE_URLS http://+:80 

请参阅https://github.com/aspnet/aspnet-docker/blob/v2.0.0/2.0/jessie/runtime/Dockerfile#L4