运行ASP.Net Core Docker映像

时间:2018-07-31 18:37:02

标签: asp.net-mvc docker

我启动了启用了Docker支持的全新ASP.Net Core MVC应用程序。它在Visual Studio中运行,但无法在命令行上运行。显然,我想这样做,以便可以将其推送到存储库并从云中某处的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仍然不显示任何内容。

enter image description here

1 个答案:

答案 0 :(得分:0)

对此的解决方案非常简单。

您需要在Dockerfile中暴露8080,将其设置为Release以构建:latest标签。