配置強制登入

訂閱: 團隊 商業版
適用於: 管理員

您可以使用多種方法強制 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 到最新版本