登錄檔訪問管理

注意

登錄檔訪問管理僅適用於 Docker Business 客戶。

藉助登錄檔訪問管理 (RAM),管理員可以確保使用 Docker Desktop 的開發人員僅訪問允許的登錄檔。這可以透過 Docker Hub 中的登錄檔訪問管理儀表板或 Docker 管理控制檯完成。

登錄檔訪問管理支援雲登錄檔和本地登錄檔。此功能在 DNS 級別執行,因此與所有登錄檔相容。您可以在允許的登錄檔列表中新增任何您想要包含的 hostname 或域名。但是,如果登錄檔重定向到其他域名(例如 s3.amazon.com),則必須將這些域名新增到列表中。

管理員可以允許的示例登錄檔包括

  • Docker Hub。預設情況下啟用。
  • Amazon ECR
  • GitHub Container Registry
  • Google Container Registry
  • GitLab Container Registry
  • Nexus
  • Artifactory

先決條件

您需要 配置 registry.json 以強制登入。為了使登錄檔訪問管理生效,Docker Desktop 使用者必須向您的組織進行身份驗證。

配置登錄檔訪問管理許可權


要配置登錄檔訪問管理許可權,請執行以下步驟

  1. 登入 Docker Hub

  2. 選擇組織、您的組織、設定,然後選擇登錄檔訪問

  3. 啟用登錄檔訪問管理以設定登錄檔的許可權。

    注意

    啟用後,Docker Hub 登錄檔預設設定,但是您也可以限制此登錄檔以供您的開發人員使用。

  4. 選擇添加註冊表,並在相應的欄位中輸入您的登錄檔詳細資訊,然後選擇建立將登錄檔新增到您的列表中。

  5. 驗證登錄檔是否出現在您的列表中,然後選擇儲存更改

    注意

    添加註冊表後,更改可能需要長達 24 小時才能在您的開發人員的機器上生效。如果要更快地應用更改,則必須在您的開發人員的機器上強制執行 Docker 登出,並讓開發人員重新對 Docker Desktop 進行身份驗證。此外,您可以新增的登錄檔數量沒有限制。請參閱下面的注意事項部分,瞭解使用此功能時的限制。

    提示

    由於 RAM 設定了有關從何處獲取內容的策略,因此 Dockerfile 的 ADD 指令(當 ADD 指令的引數為 URL 時)也受登錄檔限制。建議您將 URL 引數的域名新增到您的組織的登錄檔訪問管理設定下允許的登錄檔地址列表中。

搶先體驗版

Docker 管理控制檯是 搶先體驗版 產品。

它適用於所有公司所有者和組織所有者。您仍然可以在 Docker Hub 中管理公司和組織,但管理控制檯包含增強功能以用於公司級管理。

要配置登錄檔訪問管理許可權,請執行以下步驟

  1. 登入 管理控制檯

  2. 在左側導航下拉選單中選擇您的組織,然後選擇登錄檔訪問

  3. 啟用登錄檔訪問管理以設定登錄檔的許可權。

    注意

    啟用後,Docker Hub 登錄檔預設設定,但是您也可以限制此登錄檔以供您的開發人員使用。

  4. 選擇添加註冊表,並在相應的欄位中輸入您的登錄檔詳細資訊,然後選擇建立將登錄檔新增到您的列表中。

  5. 驗證登錄檔是否出現在您的列表中,然後選擇儲存更改

    注意

    添加註冊表後,更改可能需要長達 24 小時才能在您的開發人員的機器上生效。如果要更快地應用更改,則必須在您的開發人員的機器上強制執行 Docker 登出,並讓開發人員重新對 Docker Desktop 進行身份驗證。此外,您可以新增的登錄檔數量沒有限制。請參閱下面的注意事項部分,瞭解使用此功能時的限制。

    提示

    由於 RAM 設定了有關從何處獲取內容的策略,因此 Dockerfile 的 ADD 指令(當 ADD 指令的引數為 URL 時)也受登錄檔限制。建議您將 URL 引數的域名新增到您的組織的登錄檔訪問管理設定下允許的登錄檔地址列表中。


驗證限制

開發人員使用其組織憑據成功向 Docker Desktop 進行身份驗證後,新的登錄檔訪問管理策略將生效。如果開發人員嘗試透過 Docker CLI 從不允許的登錄檔中拉取映象,他們會收到一條錯誤訊息,表明組織已禁止此登錄檔。

注意事項

使用登錄檔訪問管理時存在某些限制

  • 預設情況下,不會限制 Windows 映象拉取和映象構建。為了使登錄檔訪問管理在 Windows 容器模式下生效,您必須允許 Windows Docker 守護程式使用 Docker Desktop 的內部代理,方法是選擇 為 Windows Docker 守護程式使用代理 設定。
  • 使用 Kubernetes 驅動程式的構建(例如 docker buildx)不受限制
  • 使用自定義 docker-container 驅動程式的構建(例如 docker buildx)不受限制
  • 阻止基於 DNS;您必須使用登錄檔的訪問控制機制來區分“推送”和“拉取”。
  • WSL 2 至少需要 5.4 系列 Linux 核心(這不適用於早期 Linux 核心系列)。
  • 在 WSL 2 網路下,來自所有 Linux 發行版的流量都受到限制(這將在更新的 5.15 系列 Linux 核心中得到解決)。

此外,登錄檔訪問管理在主機級別執行,而不是 IP 地址級別。開發人員可以在其域名解析中繞過此限制,例如,透過對本地代理執行 Docker 或修改其作業系統的 sts 檔案。阻止這些形式的操作超出了 Docker Desktop 的職責範圍。

更多資源