Docker 物件標籤

標籤是一種將元數據應用於 Docker 物件的機制,包括:

  • 映像
  • 容器
  • 本機守護程序 (Local daemons)
  • 磁碟區
  • 網路
  • Swarm 節點
  • Swarm 服務

您可以使用標籤來組織映像檔、記錄授權資訊、標註容器、磁碟區和網路之間的關係,或以任何對您的業務或應用程式有意義的方式進行使用。

標籤鍵與值

標籤是一個鍵值對,儲存為字串。您可以為一個物件指定多個標籤,但每個鍵在物件內必須是唯一的。如果同一個鍵被賦予多個值,則最後寫入的值會覆寫之前所有的值。

鍵格式建議

標籤鍵是鍵值對的左側。鍵是字母數字字串,可以包含句點 (.)、底線 (_)、斜線 (/) 和連字號 (-)。大多數 Docker 使用者使用由其他組織建立的映像檔,以下指南有助於防止物件間標籤的無意重複,特別是如果您計畫將標籤作為自動化機制使用時。

  • 第三方工具的開發者應在每個標籤鍵前加上其擁有網域的反向 DNS 標記,例如 com.example.some-label

  • 未經網域所有者許可,請勿在您的標籤鍵中使用該網域。

  • com.docker.*io.docker.*org.dockerproject.* 命名空間保留給 Docker 內部使用。

  • 標籤鍵應以小寫字母開頭和結尾,且只能包含小寫字母數字字元、句點 (.) 和連字號 (-)。不允許使用連續的句點或連字號。

  • 句點 (.) 用於分隔命名空間「欄位」。沒有命名空間的標籤鍵保留供 CLI 使用,允許 CLI 使用者透過更簡短、易於輸入的字串互動式標記 Docker 物件。

這些指南目前並未強制執行,針對特定使用情境可能適用額外的指南。

值指南

標籤值可以包含任何能表示為字串的資料類型,包括(但不限於)JSON、XML、CSV 或 YAML。唯一的要求是必須先使用特定於該結構類型的機制將值序列化為字串。例如,若要將 JSON 序列化為字串,您可以使用 JavaScript 的 JSON.stringify() 方法。

由於 Docker 不會還原序列化該值,因此除非您將此功能構建到第三方工具中,否則在按標籤值查詢或篩選時,您無法將 JSON 或 XML 文件視為巢狀結構來處理。

管理物件上的標籤

每一種支援標籤的物件類型都有新增、管理標籤以及與該物件類型相關的使用機制。這些連結提供了一個學習如何在 Docker 部署中使用標籤的良好起點。

映像檔、容器、本機守護程序、磁碟區和網路上的標籤在物件的生命週期內是靜態的。要變更這些標籤,您必須重新建立該物件。Swarm 節點和服務上的標籤則可以動態更新。

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.