配置强制登录

订阅: 团队 商业版
适用于: 管理员

您可以使用多种方法强制 Docker Desktop 登录。请选择最适合您组织基础架构和安全要求的方法。

选择你的方法

方法平台
注册表键仅限 Windows
配置文件仅限 macOS
plist 文件仅限 macOS
registry.json所有平台
提示

对于 macOS,配置配置文件提供最高的安全性,因为它们受到 Apple 的系统完整性保护 (SIP) 的保护。

Windows:注册表键方法

手动配置注册表键方法

  1. 创建注册表键

    $ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop
    
  2. 创建多字符串值名称 allowedOrgs

  3. 使用您的组织名称作为字符串数据

    • 只使用小写字母
    • 每个组织单独一行
    • 不要使用空格或逗号作为分隔符
  4. 重启 Docker Desktop。

  5. 验证 Docker Desktop 中是否出现 需要登录! 提示。

重要

您可以在 Docker Desktop 4.36 及更高版本中添加多个组织。在 4.35 及更早版本中,添加多个组织会导致强制登录静默失败。

使用组策略在您的组织中部署注册表键

  1. 创建具有所需键结构的注册表脚本。
  2. 在组策略管理中,创建或编辑一个 GPO。
  3. 导航到 计算机配置 > 首选项 > Windows 设置 > 注册表
  4. 右键单击 注册表 > 新建 > 注册表项
  5. 配置注册表项
    • 操作:更新
    • 路径:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop
    • 值名称:allowedOrgs
    • 值数据:您的组织名称
  6. 将 GPO 链接到目标组织单位。
  7. 使用 gpupdate/force 在小范围内进行测试。
  8. 验证后,在整个组织中部署。
要求: Docker Desktop 4.36 及更高版本

配置文件为 macOS 提供了最安全的强制方法,因为它们受到 Apple 的系统完整性保护的保护。

  1. 创建名为 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>
  2. 替换占位符
    • com.yourcompany.docker.config 更改为您的公司标识符
    • Your Company Name 替换为您的组织名称
    • 使用您的组织名称(以分号分隔)更新 allowedOrgs
  3. 使用您的 MDM 解决方案部署配置文件。
  4. 验证配置文件是否出现在 系统设置 > 通用 > 设备管理 下的 设备(受管) 配置文件中。

macOS:plist 文件方法

对于 Docker Desktop 4.32 及更高版本,请使用此 macOS 替代方法。

  1. 创建文件 /Library/Application Support/com.docker.docker/desktop.plist
  2. 添加此内容,将 myorg1myorg2 替换为您的组织名称
    <?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>
  3. 设置文件权限以防止非管理员用户编辑。
  4. 重启 Docker Desktop。
  5. 验证 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

基本设置

  1. 确保用户是您的 Docker 组织的成员。
  2. 在您平台的相应位置创建 registry.json 文件。
  3. 添加此内容,将组织名称替换为您自己的名称
    {
       "allowedOrgs": ["myorg1", "myorg2"]
    }
  4. 设置文件权限以防止用户编辑。
  5. 重启 Docker Desktop。
  6. 验证 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 按照以下优先级顺序使用

  1. 注册表键(仅限 Windows)
  2. 配置文件(仅限 macOS)
  3. plist 文件(仅限 macOS)
  4. registry.json 文件
重要

Docker Desktop 4.36 及更高版本支持单个配置中的多个组织。早期版本(4.35 及以下)在指定多个组织时会静默失败。

强制登录疑难解答

如果强制登录不起作用

  • 验证文件位置和权限
  • 检查组织名称是否使用小写字母
  • 重启 Docker Desktop 或重新启动系统
  • 确认用户是指定组织的成员
  • 更新 Docker Desktop 到最新版本
© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.