要在容器中运行.net应用程序,你需要在容器镜像中安装.net Framework或.net Core 运行时。这不是你需要自己管理的东西,因为微软提供的Docker镜像已经安装了运行时,你可以使用它们作为基础镜像来打包你自己的应用程序。
. net镜像有几种变体,涵盖了不同的版本和不同的运行时。本文将指导你为应用程序选择正确的镜像。
01
—
使用基础镜像你的应用需要运行一堆先决条件,比如操作系统和语言运行时。通常,平台所有者会打包一个安装了所有预请求的镜像,并将其发布到Docker Hub上——你会看到Go, Node.js, Java等都是官方镜像。
微软对.net应用程序也做了同样的事情,所以你可以使用它们的一个镜像作为基础镜像。它们定期更新,所以你可以通过使用最新的微软镜像重建它们来修补你的镜像。
.NET应用程序的Docker镜像托管在微软自己的容器注册表mcr.microsoft.com上,但它们仍然列在Docker Hub上,所以你可以在那里找到它们:
- .NET Core和.NET 5在Docker Hub上的镜像
- .NET Framework在Docker Hub上的镜像
这些页面列出了许多不同的.net镜像变体,并将它们划分为SDK镜像和运行时镜像。
你可以用一个简单的Dockerfile来打包.net应用:
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8 SHELL ["powershe