配置強制登入
目錄
您可以使用多種方法強制 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 檔案方法
對於 Docker Desktop 4.32 及更高版本,請使用此 macOS 替代方法。
- 建立檔案
/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=myorg
macOS
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 到最新版本