.NET 容器映像
.NET 針對不同的案例提供各種容器映像。 本文說明不同類型的影像及其使用方式。 如需官方映像的詳細資訊,請參閱 Docker Hub:Microsoft .NET 存放庫。
標記方案
從 .NET 8 開始,容器映射在區分方式方面更為務實。 下列特性可用來區分影像:
- 應用程式的目標架構標識符(TFM)。
- OS、版本和架構。
- 影像類型 (例如,
runtime
、aspnet
、sdk
)。 - 影像變體(例如,
*-distroless
、*-chiseled
)。 - 影像功能(例如,
*-aot
、*-extra
)。
經過尺寸優化的影像
下列圖像的目標是達到最小的圖像大小。
- 高山
- 水手無發行版
- Ubuntu 精緻版
這些映像較小,因為它們不包含全球化相依性,例如ICU或tzdata。 這些映像僅適用於設置了全球化不變模式的應用程式。 若要設定不因應全球化的應用程式,請將下列屬性新增至項目檔:
<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
提示
SDK 影像不會針對 *-distroless
或 *-chiseled
影像類型生成。 複合影像是 aspnet
提供的 Core CLR中最小的方案。
適用於全球化的影像
需要全球化的容器化應用程式會擴大映像大小,因為它們需要全球化相依性。 Ubuntu 和 Debian 映像檔已安裝 ICU 和 tzdata。
tzdata 相依性已新增至下列映射:
runtime-deps:8.0-jammy
runtime-deps:8.0-bookworm-slim
這個全球化策略是由具有相同標記的 runtime
、aspnet
和 sdk
影像所使用。
重要
將 tzdata 新增至 Debian bookworm 映像檔沒有實際效果,除非有 tzdata 的更新(尚未包含在 Debian 中),屆時 .NET 映像檔會包含較新的 tzdata。
某些套件仍然是選擇性的,例如 Kerberos、LDAP 和 msquic。 這些套件只有在利基案例中才需要。
情境圖像
運行時相依項 映像具有顯著價值,特別是因為它們包含標準使用者和端口定義。 它們方便用於獨立和原生 AOT 情境。 不過,僅提供 執行階段 和 SDK 所需的 runtime-deps
映像,仍然不足以啟用所有可想像的情境或生成最佳映像。
runtime-deps
的需求也會延伸到原生 AOT、*-distroless
和 *-chiseled
影像類型。 針對每個OS,會提供三個映像變體(全部在 runtime-deps
中)。 請考慮使用 *-chiseled
映射的下列範例:
-
8.0-jammy-chiseled
:Core CLR 的映像檔,沒有 tzdata 或 ICU。 -
8.0-jammy-chiseled-aot
:原生 AOT,沒有 tzdata、ICU 或 stdc++ 的影像。 -
8.0-jammy-chiseled-extra
:用于 Core CLR 和原生 AOT 的映像,包含 tzdata、ICU 和 stdc++。
在情境方面:
8.0-jammy-chiseled
映像是相同標籤 runtime
和 aspnet
映像的基礎。 根據預設,原生 AOT 應用程式可以使用 8.0-jammy-chiseled-aot
映像,因為它已針對大小進行優化。 需要全球化功能的原生 AOT 應用程式和 Core CLR 獨立/ 單一檔案應用程式可以使用 8.0-jammy-chiseled-extra
。
Alpine 和 Mariner 影像使用相同的配置。
注意
Debian 和 Ubuntu(非切割)runtime-deps
映像沒有不同的版本。
原生 AOT 容器映像
原生 AOT 映像會發布到 sdk 存放庫,並標記為 -aot
後綴。 這些映像可讓您建置原生 AOT 應用程式。 這些是為具有相符 runtime-deps:*-aot
映像的發行版所建立配件。 這些映像很大,通常是一般 SDK 映射大小的兩倍。
AOT 影像已針對下列項目發行:
- 高山
- 水手
- Ubuntu
如需詳細資訊,請參閱 Native AOT 部署。
Docker 中樞存放庫
.NET 的所有官方 Microsoft 映像檔都會發佈到 microsoft-dotnet Docker Hub 組織。 請考慮下列存放庫。
.NET 穩定映射存放庫:
映像存放庫 | 圖片 |
---|---|
sdk | mcr.microsoft.com/dotnet/sdk |
aspnet | mcr.microsoft.com/dotnet/aspnet |
執行時間 | mcr.microsoft.com/dotnet/runtime |
運行時依賴項 | mcr.microsoft.com/dotnet/runtime-deps |
顯示器 | mcr.microsoft.com/dotnet/monitor |
aspire-dashboard | mcr.microsoft.com/dotnet/aspire-dashboard |
範例 | mcr.microsoft.com/dotnet/samples |
.NET 夜間映像儲存庫:
映像存放庫 | 圖像 |
---|---|
夜間版本 aspnet | mcr.microsoft.com/dotnet/nightly/aspnet |
夜間監視器 | mcr.microsoft.com/dotnet/nightly/monitor |
夜間版本運行時依賴 | mcr.microsoft.com/dotnet/nightly/runtime-deps |
夜間運行時間 | mcr.microsoft.com/dotnet/nightly/runtime |
夜間 sdk | mcr.microsoft.com/dotnet/nightly/sdk |
夜間儀錶板 | mcr.microsoft.com/dotnet/nightly/aspire-dashboard |
.NET Framework 映像存放庫:
映像存放庫 | 圖像 |
---|---|
架構 | mcr.microsoft.com/dotnet/framework |
framework-aspnet | mcr.microsoft.com/dotnet/framework/aspnet |
framework-runtime | mcr.microsoft.com/dotnet/framework/runtime |
framework-samples 範例 | mcr.microsoft.com/dotnet/framework/samples |
framework-sdk | mcr.microsoft.com/dotnet/framework/sdk |
framework-wcf | mcr.microsoft.com/dotnet/framework/wcf |