設定強制登入

訂閱: 團隊 商業
適用對象: 管理員

您可以使用數種方法來為 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 檔案方法

針對 macOS,搭配 Docker Desktop 4.32 版及更高版本使用此替代方法。

  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.