c# - docker 容器不分配端口
问题描述
我正在尝试将我的简单 REST Api(基于 asp.net 核心)放入 docker 容器中。
我有以下泊坞窗文件
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["/", "SimpleApp.Api/"]
RUN dotnet restore "SimpleApp.Api/SimpleApp.Api.csproj"
COPY . .
WORKDIR "/src/SimpleApp.Api"
RUN dotnet build "SimpleApp.Api.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "SimpleApp.Api.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "SimpleApp.Api.dll"]
我可以从该文件成功构建图像,但是当我运行容器时,例如,我不能调用任何 URL + 我在我的 API 上大摇大摆,所以它应该向我显示一个页面,但它没有吨。
docker run -d --name "mySimpleContainer" "MySimpleApp:latest" --ports 5000:80
像这样的网址localhost:5000
不起作用所以首先我检查了日志:
........
2019-02-02 13:37:17.3635||DEBUG|Microsoft.AspNetCore.Hosting.Internal.WebHost|Loaded hosting startup assembly SimpleApp.Api
Hosting environment: Production
Content root path: /app
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down.
在我看来很好。其次,我检查了 5000 是否忙……突然就没有了!!!检查我使用的端口netstat -an | find ":5000"
有谁知道我失败的地方?
解决方案
推荐阅读
- javascript - 如何在我的 javascript 文件中使用来自 message.properties 的 Thymeleaf 消息?
- powershell - 如何从powershell中每个键的哈希表中获取值的计数
- c++ - for 循环或迭代器是遍历字符串的更快方法吗?
- applescript - applescript 中是否有应用程序类型?
- arrays - 什么是在不使用最后一项索引的情况下获取切片中最后一项以外的所有内容的单行解决方案?
- react-native - 如何从android中删除react native包
- php - 需要将显示页面的 HTML 转换为 PDF
- ruby-on-rails - 已解决在部署中,我的 Rails 应用程序将图片保存在与当前版本不同的新 capistrano 版本目录中
- javascript - 使用 src=require() 时,来自 webpack 的 Vue.js 错误“找不到模块 './undefined'”
- html - CSS 为 :host 伪类添加特异性