設定強制登入
目錄
您可以使用數種方法來為 Docker Desktop 強制登入。請選擇最適合您組織的基礎架構和安全性需求的方法。
選擇您的方法
| 方法 | 平台 |
|---|---|
| 登錄檔金鑰 | 僅限 Windows |
| 配置描述檔 | 僅限 macOS |
plist 檔案 | 僅限 macOS |
registry.json | 所有平台 |
提示對於 macOS,配置描述檔提供最高的安全性,因為它們受到 Apple 系統完整性保護 (SIP) 的保護。
Windows:登錄檔金鑰方法
手動設定登錄檔金鑰方法
建立登錄檔金鑰
$ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop建立一個多字串值名稱
allowedOrgs。使用您的組織名稱作為字串資料
- 僅使用小寫字母
- 每個組織請新增在單獨一行
- 請勿使用空格或逗號作為分隔符號
重新啟動 Docker Desktop。
驗證
需要登入!提示在 Docker Desktop 中出現。
重要您可以在 Docker Desktop 4.36 版及更高版本中新增多個組織。若使用 4.35 版及更早版本,新增多個組織將導致強制登入靜默失敗。
使用群組原則在您的組織中部署登錄檔金鑰
- 建立一個具有所需金鑰結構的登錄檔指令碼。
- 在群組原則管理中,建立或編輯一個 GPO。
- 導覽至 電腦設定 > 偏好設定 > Windows 設定 > 登錄檔。
- 在 登錄檔 上按右鍵 > 新增 > 登錄檔項目。
- 設定登錄檔項目
- 動作:更新
- 路徑:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop - 值名稱:
allowedOrgs - 值資料:您的組織名稱
- 將 GPO 連結到目標組織單位。
- 使用
gpupdate/force在一小群組上進行測試。 - 驗證後在整個組織中部署。
macOS:配置描述檔方法 (建議)
配置描述檔為 macOS 提供最安全的強制實施方法,因為它們受到 Apple 系統完整性保護的保護。
- 建立一個名為
docker.mobileconfig的檔案,並包含此內容<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PayloadContent</key> <array> <dict> <key>PayloadType</key> <string>com.docker.config</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadIdentifier</key> <string>com.docker.config</string> <key>PayloadUUID</key> <string>eed295b0-a650-40b0-9dda-90efb12be3c7</string> <key>PayloadDisplayName</key> <string>Docker Desktop Configuration</string> <key>PayloadDescription</key> <string>Configuration profile to manage Docker Desktop settings.</string> <key>PayloadOrganization</key> <string>Your Company Name</string> <key>allowedOrgs</key> <string>first_org;second_org</string> </dict> </array> <key>PayloadType</key> <string>Configuration</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadIdentifier</key> <string>com.yourcompany.docker.config</string> <key>PayloadUUID</key> <string>0deedb64-7dc9-46e5-b6bf-69d64a9561ce</string> <key>PayloadDisplayName</key> <string>Docker Desktop Config Profile</string> <key>PayloadDescription</key> <string>Config profile to enforce Docker Desktop settings for allowed organizations.</string> <key>PayloadOrganization</key> <string>Your Company Name</string> </dict> </plist> - 取代預留位置
- 將
com.yourcompany.docker.config變更為您的公司識別碼 - 將
Your Company Name取代為您的組織名稱 - 使用您的組織名稱更新
allowedOrgs值 (以分號分隔)
- 將
- 使用您的 MDM 解決方案部署此描述檔。
- 驗證描述檔是否出現在 系統設定 > 一般 > 裝置管理 下的 裝置 (已管理) 描述檔中。
macOS:plist 檔案方法
針對 macOS,搭配 Docker Desktop 4.32 版及更高版本使用此替代方法。
- 建立檔案
/Library/Application Support/com.docker.docker/desktop.plist。 - 新增此內容,並將
myorg1和myorg2取代為您的組織名稱<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>allowedOrgs</key> <array> <string>myorg1</string> <string>myorg2</string> </array> </dict> </plist> - 設定檔案權限以防止非管理員使用者編輯。
- 重新啟動 Docker Desktop。
- 驗證
需要登入!提示在 Docker Desktop 中出現。
建立並部署用於組織範圍散佈的指令碼
#!/bin/bash
# Create directory if it doesn't exist
sudo mkdir -p "/Library/Application Support/com.docker.docker"
# Write the plist file
sudo defaults write "/Library/Application Support/com.docker.docker/desktop.plist" allowedOrgs -array "myorg1" "myorg2"
# Set appropriate permissions
sudo chmod 644 "/Library/Application Support/com.docker.docker/desktop.plist"
sudo chown root:admin "/Library/Application Support/com.docker.docker/desktop.plist"使用 SSH、遠端支援工具或您偏好的部署方法來部署此指令碼。
所有平台:registry.json 方法
registry.json 方法適用於所有平台,並提供彈性的部署選項。
檔案位置
在適當位置建立 registry.json 檔案
| 平台 | 位置 |
|---|---|
| Windows | /ProgramData/DockerDesktop/registry.json |
| Mac | /Library/Application Support/com.docker.docker/registry.json |
| Linux | /usr/share/docker-desktop/registry/registry.json |
基本設定
- 確保使用者是您的 Docker 組織的成員。
- 在適合您平台的適當位置建立
registry.json檔案。 - 新增此內容,並將組織名稱取代為您自己的名稱
{ "allowedOrgs": ["myorg1", "myorg2"] } - 設定檔案權限以防止使用者編輯。
- 重新啟動 Docker Desktop。
- 驗證
需要登入!提示在 Docker Desktop 中出現。
提示如果使用者在強制登入後啟動 Docker Desktop 時遇到問題,他們可能需要更新到最新版本。
Windows (以管理員身分執行 PowerShell)
Set-Content /ProgramData/DockerDesktop/registry.json '{"allowedOrgs":["myorg1","myorg2"]}'macOS
sudo mkdir -p "/Library/Application Support/com.docker.docker"
echo '{"allowedOrgs":["myorg1","myorg2"]}' | sudo tee "/Library/Application Support/com.docker.docker/registry.json"
Linux
sudo mkdir -p /usr/share/docker-desktop/registry
echo '{"allowedOrgs":["myorg1","myorg2"]}' | sudo tee /usr/share/docker-desktop/registry/registry.json
在 Docker Desktop 安裝期間建立 registry.json 檔案
Windows
# PowerShell
Start-Process '.\Docker Desktop Installer.exe' -Wait 'install --allowed-org=myorg'
# Command Prompt
"Docker Desktop Installer.exe" install --allowed-org=myorgmacOS
sudo hdiutil attach Docker.dmg
sudo /Volumes/Docker/Docker.app/Contents/MacOS/install --allowed-org=myorg
sudo hdiutil detach /Volumes/Docker
方法優先順序
當同一個系統上存在多個配置方法時,Docker Desktop 會遵循此優先順序
- 登錄檔金鑰 (僅限 Windows)
- 配置描述檔 (僅限 macOS)
- plist 檔案 (僅限 macOS)
- registry.json 檔案
重要Docker Desktop 4.36 版及更高版本在單一配置中支援多個組織。較早版本 (4.35 及以下) 在指定多個組織時會靜默失敗。
疑難排解強制登入
如果強制登入無法運作
- 驗證檔案位置和權限
- 檢查組織名稱是否使用小寫字母
- 重新啟動 Docker Desktop 或重新啟動系統
- 確認使用者是指定組織的成員
- 將 Docker Desktop 更新到最新版本