dotnet-docker README

The project's README from github.com/dotnet/dotnet-docker. As one markdown file: README.md.

.NET

About

.NET is a general purpose development platform maintained by Microsoft and the .NET community on GitHub. It is cross-platform, supports Windows, macOS, and Linux, and can be used in device, cloud, and embedded/IoT scenarios.

.NET has several capabilities that make development productive, including automatic memory management, (runtime) generic types, reflection, asynchronous constructs, concurrency, and native interop. Millions of developers take advantage of these capabilities to efficiently build high-quality applications.

You can use C# or F# to write .NET apps.

.NET is open source (MIT and Apache 2 licenses) and was contributed to the .NET Foundation by Microsoft in 2014. It can be freely adopted by individuals and companies, including for personal, academic or commercial purposes. Multiple companies use .NET as part of apps, tools, new platforms and hosting services.

You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.

.NET Documentation

Watch discussions for Docker-related .NET announcements.

Usage

The .NET Docker samples show various ways to use .NET and Docker together. See Introduction to .NET and Docker to learn more.

Container sample: Run a simple application

You can quickly run a container with a pre-built .NET Docker image, based on the .NET console sample.

Type the following command to run a sample console application:

docker run --rm mcr.microsoft.com/dotnet/samples

Container sample: Run a web application

You can quickly run a container with a pre-built .NET Docker image, based on the ASP.NET Core sample.

Type the following command to run a sample web application:

docker run -it --rm -p 8000:8080 --name aspnetcore_sample mcr.microsoft.com/dotnet/samples:aspnetapp

After the application starts, navigate to http://localhost:8000 in your web browser. You can also view the ASP.NET Core site running in the container from another machine with a local IP address such as http://192.168.1.18:8000.

Note: ASP.NET Core apps (in official images) listen to port 8080 by default, starting with .NET 8. The -p argument in these examples maps host port 8000 to container port 8080 (host:container mapping). The container will not be accessible without this mapping. ASP.NET Core can be configured to listen on a different or additional port.

See Hosting ASP.NET Core Images with Docker over HTTPS to use HTTPS with this image.

Image Variants

.NET container images have several variants that offer different combinations of flexibility and deployment size. The Image Variants documentation contains a summary of the image variants and their use-cases.

Distroless images

.NET distroless container images contain only the minimal set of packages .NET needs, with everything else removed. Due to their limited set of packages, distroless containers have a minimized security attack surface, smaller deployment sizes, and faster start-up time compared to their non-distroless counterparts. They contain the following features:

.NET offers distroless images for Azure Linux and Ubuntu (Chiseled).

.NET:

.NET Framework:

Support

Lifecycle

Image Update Policy

CVE Update Policy

.NET container images are regularly monitored for the presence of CVEs. A given image will be rebuilt to pick up fixes for a CVE when:

Please refer to the Security Policy and Container Vulnerability Workflow for more detail about what to do when a CVE is encountered in a .NET image.

Feedback

License

dotnet-docker (dotnet/dotnet-docker)

Searching Database…

这是什么?这是微软维护的 .NET 容器镜像官方仓库,提供用于运行 .NET 应用的预构建 Docker 镜像。
这是一组 Docker 镜像,还是真正的 SDK?它是官方 .NET 容器镜像(SDK、runtime、ASP.NET runtime、runtime-deps、monitor、aspire-dashboard)的 Dockerfile 和文档集合,而不是 .NET SDK 本身。
怎么在容器里运行 .NET 应用?拉取预构建的 .NET Docker 镜像并直接运行,例如控制台示例或 ASP.NET Core Web 示例镜像。
除了 Docker 还需要别的东西吗?你只需安装 Docker;镜像已打包运行 .NET 应用所需的一切,你可以用 C# 或 F# 编写应用。
ASP.NET Core 容器默认监听哪个端口?从 .NET 8 开始,官方镜像中的 ASP.NET Core 应用默认监听 8080 端口,因此必须正确映射主机:容器端口,否则应用无法访问。
这些容器镜像面向哪些平台?.NET 本身是跨平台的(Windows、macOS、Linux),这些 Docker 镜像专门支持 Windows 和 Linux 容器,包括 Azure Linux 和 Ubuntu Chiseled distroless 变体。
什么是 distroless .NET 镜像?一种精简镜像,只包含 .NET 所需的软件包,没有 shell、没有包管理器,默认使用非 root 用户,从而减少攻击面和体积。
这些镜像多久为安全修复更新一次?基础镜像更新会在 12 小时内触发重建,关键 CVE 在修复可用后立即打补丁,镜像还会每月常规重建一次,通常在第二个周二。
这些镜像有预览版本吗?有,SDK、ASP.NET runtime、runtime、runtime-deps、monitor 和 aspire-dashboard 镜像都有 nightly/preview 变体。
有旧版 .NET Framework 的选择吗?有,dotnet/framework 提供 .NET Framework、ASP.NET 和 WCF 镜像及示例,与跨平台的 .NET 镜像相互独立。
Creator
dotnet
Size
36.8 MB
Stars
4.9K
Updated
CommitOct 14
Age
10y
Commits · 90 Days