首页 > 解决方案 > 运行 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 仍然没有显示任何内容。

在此处输入图像描述

标签: asp.net-mvcdocker

解决方案


我学到的解决方案相当简单。

您需要在 Dockerfile 中公开 8080,设置为 Release 以构建 :latest 标签。


推荐阅读