asp.net-mvc - 运行 ASP.Net Core Docker 映像
问题描述
我启动了一个启用了 Docker 支持的全新 ASP.Net Core MVC 应用程序。它从 Visual Studio 中运行,但我无法在命令行上运行。显然我想这样做,以便我可以将它推送到 repo 并从云中某处的 Linux 服务器运行。
如果我运行,c:\>docker images
我会看到 webapplication10:dev 图像
如果我运行,c:\>docker ps
我确实看到运行 webapplication10:dev 的容器。
我的问题是这个。如何在不同的端口上运行此图像的容器。文档似乎认为下面的语句应该有效,但事实并非如此。如果我杀死容器并尝试运行它,则没有创建容器。
docker run -d -p 8080:80 webapplication10:dev
据我了解,一旦我运行它,我应该能够浏览到 localhost:8080 但不,这不起作用。有任何想法吗?
这是 docker-compose (这里没有惊喜,只是库存标准)
version: '3.4'
services:
webapplication10:
image: ${DOCKER_REGISTRY}webapplication10
build:
context: .
dockerfile: WebApplication10/Dockerfile
这是 Dockerfile
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY WebApplication10/WebApplication10.csproj WebApplication10/
RUN dotnet restore WebApplication10/WebApplication10.csproj
COPY . .
WORKDIR /src/WebApplication10
RUN dotnet build WebApplication10.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish WebApplication10.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApplication10.dll"]
控制台窗口显示 docker ps 仍然没有显示任何内容。
解决方案
我学到的解决方案相当简单。
您需要在 Dockerfile 中公开 8080,设置为 Release 以构建 :latest 标签。
推荐阅读
- go - 当服务器使用 gin-gonic 和 gin-contrib/gzip 发生恐慌时,HTTP 客户端收到状态码 200
- python - 我可以制作和运行的最简单的软件包是什么?
- javascript - 将(JSON、JS)数据加载到 Mapbox
- angular - 你如何告诉组件使用特定的模板文件?
- r - R:在for循环中命名矩阵行/列在控制台中有效,但在编织时无效
- excel - 随机分布到一个矩阵
- python - 如何在 Matplotlib 中注册倒数(1/x)比例?
- google-sheets - 为几个不同的行(数组)创建单个公式(谷歌表格)
- ios - 对如何/在哪里设置 Xib 的高度感到困惑
- matlab - 调用期间未分配输出参数:Matlab