自定義 Docker 強化映象

您可以使用 Docker Hub UI 自定義 Docker 強化映象 (DHI) 以滿足您的特定需求。這允許您選擇基礎映象、新增包、新增 Artifact 並配置設定。此外,構建管道確保您的自定義映象安全構建幷包含認證。

要將自定義的 Docker 強化映象新增到您的組織,組織所有者必須首先將 DHI 儲存庫映象到您的組織。一旦儲存庫被映象,任何有權訪問映象 DHI 儲存庫的使用者都可以建立自定義映象。

自定義 Docker 強化映象

要自定義 Docker 強化映象,請按照以下步驟操作

  1. 登入 Docker Hub

  2. 選擇我的 Hub

  3. 在名稱空間下拉列表中,選擇您的擁有映象 DHI 儲存庫的組織。

  4. 選擇強化映象 > 管理

  5. 對於要自定義的映象 DHI 儲存庫,選擇最右側列中的選單圖示。

  6. 選擇自定義

    此時,螢幕上的說明將指導您完成自定義過程。您可以繼續以下步驟以獲取更多詳細資訊。

  7. 選擇要自定義的映象版本。

  8. 新增包。

    1. 下拉列表中,選擇要新增到映象的包。

      下拉列表中可用的包是所選映象變體的 OS 系統包。例如,如果您正在自定義 Python DHI 的 Alpine 變體,則列表將包含所有 Alpine 系統包。

    2. OCI Artifact 下拉列表中,首先選擇包含 OCI Artifact 映象的儲存庫。然後,從該儲存庫中選擇要使用的標籤。最後,指定要從 OCI Artifact 映象中包含的特定路徑。

      OCI Artifact 是您之前構建並推送到與映象 DHI 相同名稱空間中的儲存庫的映象。例如,您可以新增自定義根 CA 證書或包含您所需工具的另一個映象,例如將 Python 新增到 Node.js 映象中。有關如何建立 OCI Artifact 映象的更多詳細資訊,請參閱建立 OCI Artifact 映象

      當合幷包含相同路徑的目錄和檔案的映象時,列表中靠後的映象將覆蓋靠前映象中的檔案。為了管理這一點,您必須選擇要包含的路徑,並可選擇從每個 OCI Artifact 映象中排除。這使您能夠控制最終自定義映象中包含哪些檔案。

      預設情況下,不包含 OCI Artifact 映象中的任何檔案。您必須顯式包含您想要的路徑。包含路徑後,您可以顯式排除其下的檔案或目錄。

      注意

      當執行時必需的檔案被 OCI Artifact 覆蓋時,映象構建仍然成功,但您在執行映象時可能會遇到問題。

  9. 選擇下一步:配置,然後配置以下選項。

    1. 指定附加到自定義映象標籤的字尾。例如,如果您在自定義 `dhi-python:3.13` 映象時指定 `custom`,則自定義映象將被標記為 `dhi-python:3.13_custom`。
    2. 選擇要為之構建映象的平臺。
    3. 向映象新增ENTRYPOINTCMD引數。這些引數附加到基礎映象的入口點和命令。
    4. 指定要新增到映象的使用者。
    5. 指定要新增到映象的使用者組。
    6. 選擇作為哪個使用者執行映象。
    7. 指定映象將包含的環境變數及其值。
    8. 向映象新增註釋
    9. 向映象新增標籤
  10. 選擇建立自定義

    將顯示自定義摘要。映象構建可能需要一些時間。構建完成後,它將顯示在儲存庫的標籤選項卡中,您的團隊成員可以像拉取任何其他映象一樣拉取它。

編輯或刪除 Docker 強化映象自定義

要編輯或刪除 Docker 強化映象自定義,請按照以下步驟操作

  1. 登入 Docker Hub

  2. 選擇我的 Hub

  3. 在名稱空間下拉列表中,選擇您的擁有映象 DHI 的組織。

  4. 選擇強化映象 > 管理

  5. 選擇自定義

  6. 對於要管理的自定義 DHI 儲存庫,選擇最右側列中的選單圖示。在此處,您可以

    • 編輯:編輯自定義映象。
    • 新建:基於源儲存庫建立新的自定義映象。
    • 刪除:刪除自定義映象。
  7. 按照螢幕上的說明完成編輯或刪除。

建立 OCI Artifact 映象

OCI Artifact 映象是 Docker 映象,其中包含您要包含在自定義 Docker 強化映象 (DHI) 中的檔案或目錄。這可以包括附加工具、庫或配置檔案。

在建立用作 OCI Artifact 的映象時,它應該儘可能最小化,並且只包含必要的檔案。

例如,要將自定義根 CA 證書作為受信任 CA 捆綁包的一部分進行分發,您可以使用多階段構建。這種方法將您的證書註冊到系統中並輸出更新的 CA 捆綁包,該捆綁包可以提取到最小的最終映象中。

# syntax=docker/dockerfile:1

FROM <your-namespace>/dhi-bash:5-dev AS certs

ENV DEBIAN_FRONTEND=noninteractive

RUN mkdir -p /usr/local/share/ca-certificates/my-rootca
COPY certs/rootCA.crt /usr/local/share/ca-certificates/my-rootca

RUN update-ca-certificates

FROM scratch
COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt

您可以按照此模式建立其他 OCI Artifact,例如包含您要包含在自定義 DHI 中的工具或庫的映象。在第一階段安裝必要的工具或庫,然後將相關檔案複製到使用 `FROM scratch` 的最終階段。這確保您的 OCI Artifact 最小化且僅包含必要的檔案。

將 OCI Artifact 映象構建並推送到組織名稱空間中的儲存庫,當您選擇要新增到自定義 Docker 強化映象的 OCI Artifact 時,它會自動顯示在自定義工作流程中。