在 Docker 容器中托管 ASP.NET Core

注意

此版本不是本文的最新版本。 对于当前版本,请参阅此文的 .NET 8 版本

警告

此版本的 ASP.NET Core 不再受支持。 有关详细信息,请参阅 .NET 和 .NET Core 支持策略。 对于当前版本,请参阅此文的 .NET 8 版本

重要

此信息与预发布产品相关,相应产品在商业发布之前可能会进行重大修改。 Microsoft 对此处提供的信息不提供任何明示或暗示的保证。

对于当前版本,请参阅此文的 .NET 8 版本

下面的文章可用于了解如何在 Docker 中托管 ASP.NET Core 应用:

容器和 Docker 简介
容器化是软件开发的一种方法,通过该方法可将应用程序或服务、其依赖项及其配置一起打包为容器映像。了解相关内容。 可对该映像进行测试,然后将其部署到主机。

什么是 Docker
了解如何将 Docker 作为一种开源项目,用于将应用自动部署为可在云或本地运行的便携式独立容器。

Docker 术语
了解 Docker 技术的术语和定义。

Docker 容器、映像和注册表
了解如何将 Docker 容器映像存储在映像注册表中,以实现跨环境的一致部署。

在 Docker 容器中运行 ASP.NET Core 应用 了解如何生成和 Docker 化 ASP.NET Core 应用。 了解由 Microsoft 维护的 Docker 映像并检查用例。

.NET Docker 示例演示如何使用 .NET 和 Docker 进行开发、测试和生产的示例和指南。

Visual Studio 容器工具
了解 Visual Studio 如何支持在用于 Windows 的 Docker 上生成、调试和运行面向 .NET Framework 或 .NET Core 的 ASP.NET Core 应用。 Windows 和 Linux 容器均受支持。

发布到 Azure 容器注册表
了解如何通过 Visual Studio 容器工具扩展使用 PowerShell 将 ASP.NET Core 应用部署到 Azure 上的 Docker 主机。

配置 ASP.NET Core 以使用代理服务器和负载均衡器
对于托管在代理服务器和负载均衡器后方的应用,可能需要附加配置。 通过代理传递的请求通常会遮盖初始请求相关信息,例如方案和客户端 IP。 可能必须将请求相关的一些信息手动转发给应用。

使用 Docker 和小型容器的 GC 讨论了包含小型容器的 GC 选择。

System.IO.IOException:已达到配置的 inotify 实例数用户限制 (128)

禁用 reloadOnChange 可以显著减少打开的文件数。 若要禁用重新加载配置文件,请设置环境变量 DOTNET_HOSTBUILDER__RELOADCONFIGONCHANGE=false

有关替代方法或留下关于此问题的反馈,请参阅此 GitHub 问题