配置强制登录
目录
您可以使用多种方法强制 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=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 到最新版本