共用方式為


設定您的應用程式以使用 gMSA

適用於:Windows Server 2025、Windows Server 2022、Windows Server 2019

在一般設定中,容器只會獲得一個群組受控服務帳戶 (gMSA),每當容器計算機帳戶嘗試向網路資源進行驗證時,就會使用此帳戶。 這表示,如果您的應用程式需要使用 gMSA 身分識別,則必須以 本機系統網路服務 的形式執行。 可以為容器設定額外的 gMSA,如果您想要以不同於容器電腦帳戶的身份在容器中運行服務或應用程式。

以網路服務身分執行 IIS 應用程式集區

如果您要在容器中裝載 IIS 網站,您只需要利用 gMSA 即可將應用程式集區身分識別設定為 Network Service。 您可以藉由新增下列命令,在 Dockerfile 中執行此動作:

RUN %windir%\system32\inetsrv\appcmd.exe set AppPool DefaultAppPool -'processModel.identityType':NetworkService

如果您先前針對 IIS 應用程式集區使用靜態使用者認證,請考慮 gMSA 作為這些認證的取代專案。 您可以在開發、測試和生產環境之間變更 gMSA,而 IIS 會自動挑選目前的身分識別,而不需要變更容器映像。

以網路服務身分執行 Windows 服務

如果您的容器化應用程式以 Windows 服務的形式執行,您可以將服務設定為在 Dockerfile 中以 網路服務 執行:

RUN sc.exe config "YourServiceName" obj= "NT AUTHORITY\NETWORK SERVICE" password= ""

以網路服務身分執行任意控制台應用程式

對於未在 IIS 或 Service Manager 中裝載的通用控制台應用程式,通常最簡單的方法是將容器作為 網路服務 執行,讓應用程式自動繼承 gMSA 執行內容。 此功能可從 Windows Server 版本 1709 起取得。

將下列這一行新增至您的 Dockerfile,使其預設會以網路服務的形式執行:

USER "NT AUTHORITY\NETWORK SERVICE"

您也可以使用 docker exec,一次性連線到容器即網路服務。 當容器通常不以網路服務形式運行時,如果您正在針對執行中的容器中的連線問題進行疑難排解,這會特別有用。

# Opens an interactive PowerShell console in the container (id = 85d) as the Network Service account
docker exec -it --user "NT AUTHORITY\NETWORK SERVICE" 85d powershell

除了設定應用程式之外,您也可以使用 gMSA 來:

如果您在安裝期間遇到任何問題,請查看我們的 疑難解答指南,以尋找可能的解決方案。