问题描述
我正在跟踪.NET Core的示例docker。在那里,我按照教程创建了dockerfile。我建立映像并成功在端口8081:80上运行它。所以我可以看到我的应用程序在localhost:8081上运行。但是我在那里有些困惑,它是如何运行的,哪个服务器实际上负责运行容器。我在这里有点困惑,因为我没有那里发生的一切的清晰画面。任何资源将不胜感激。谢谢。
这是我的dockerfile
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
workdir /app
# copy csproj and restore as distinct layers
copY *.csproj ./
RUN dotnet restore
# copy everything else and build
copY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
workdir /app
copY --from=build-env /app/out .
ENTRYPOINT ["dotnet","aspnetapp.dll"]
解决方法
通过查看源Dockerfile-
- sdk Dockerfile,基于
- aspnet Dockerfile,基于
- runtime Dockerfile,基于
- runtime-dep Dockerfile(当然是建立在高山图像的基础上)
它们都不安装或配置任何其他Web服务器(Nginx,Apache等)来覆盖default web server of ASP.NET Core,因此它必须是 Kestrel 。