摘要:你可以用過把元數據應用到你的鏡像,容器或者是守護進程中。元數據可以服務于廣泛的用途。這意味著本身并不提供基于嵌套屬性的查詢過濾器。使用指令給鏡像添加標簽指令用來給鏡像添加標簽,可選擇設置它的值。對于使用空格的標簽,要用雙引號或者反斜杠。
你可以用過LABEL把元數據應用到你的鏡像,容器或者是守護進程中。元數據可以服務于廣泛的用途。使用標簽可以給鏡像添加注釋或者是許可信息,還可以用來標志你的主機
標簽是
Label keys (namespaces)注意:Docker1.4.1之后的版本才支持daemon-labels,對標簽和容器的標簽支持是1.6.0中的新特性。
標簽的鍵,(也就是命名空間)
Docker對你創建的標簽中的鍵沒有什么硬性的限制,但是簡單的鍵也有可能沖突。例如,你通過architecture標簽來給你的鏡像分類:
languageLABEL architecture="amd64" LABEL architecture="ARMv7"
而且用戶也可以通過不同風格的標簽來給鏡像打標簽:
languageLABEL architecture="Art Nouveau"
為了防止命名沖突,Docker的命名空間標簽鍵使用反向域名表示。參考下面來命名你的鍵:
所有的(第三方)工具都用反向域名前綴+標簽的方式來命名,這個反向域名要和工具作者提供的域名一致,如com.example.some-label,com.example.some-auther="root"
com.docker.*, io.docker.*和com.dockerproject.*保留給Docker內部使用
鍵只能是小寫字母,數字,點和-表示,及[a-z0-9-.]
鍵名的開始和結束只能是字母和數字
不能包含連續的-和點
沒有名稱空間的標簽保留給CLI,這就允許最終用戶給容器和鏡像添加元數據而不必在終端輸入繁瑣的命令
上面列舉的都是準則且Docker嚴格遵守執行。如果你沒有遵守這些準則有可能導致標簽名的沖突。如果恰巧你也在使用標簽構建工具的話,趕快為你的標簽和鍵使用名稱空間吧
Store structured data in labels在標簽中存儲結構化數據
標簽中的值可以包含任何能被存儲為字符串的值,例如下面的JSON格式的數據:
shell{ "Description": "A containerized foobar", "Usage": "docker run --rm example/foobar [args]", "License": "GPL", "Version": "0.0.1-beta", "aBoolean": true, "aNumber" : 0.01234, "aNestedArray": ["a", "b", "c"] }
要想把這個結構存儲在標簽中,首先你要把它序列化為字符串:
languageLABEL com.example.image-specs="{"Description":"A containerized foobar","Usage":"docker run --rm example/foobar [args]","License":"GPL","Version":"0.0.1-beta","aBoolean":true,"aNumber":0.01234,"aNestedArray":["a","b","c"]}"
雖然可以在標簽中存儲結構化的數據,但是Docker把它(結構化的數據)看作是普通的字符串。這意味著Docker本身并不提供基于嵌套屬性的查詢(過濾器)。如果你的工具需要通過嵌套屬性來過濾,那么你的工具本身要實現這個功能,二不要讓Docker去做。
Add labels to images; the LABEL instruction使用LABEL指令給鏡像添加標簽
languageLABEL [.] [= ] ...
LABEL指令用來給鏡像添加標簽,可選擇設置它的值。對于使用空格的標簽,要用雙引號或者反斜杠。
e.g.
languageLABEL vendor=ACME Incorporated LABEL com.example.version.is-beta LABEL com.example.version="0.0.1-beta" LABEL com.example.release-date="2015-02-12"
注意:上面的第二行中只有鍵,沒有值。
LABEL指令支持在一個LABEL下設置多個
e.g.
languageLABEL com.example.version="0.0.1-beta" com.example.release-date="2015-02-12"
Docker允許使用反斜杠,將1行指令分割為多個行
languageLABEL vendor=ACME Incorporated com.example.is-beta com.example.version="0.0.1-beta" com.example.release-date="2015-02-12"
Docker更推薦你在一個LABEL指令中設置多個標簽,每個標簽都用指令多帶帶設置的話會讓你的鏡像很低效,這是因為每一個Dockerfile中的LABEL指令都會產生1個鏡像層(怒了,這個解釋直達本質啊)!!!
我們可以使用docker inspect來查看鏡像或者容器的標簽
Query labels查詢標簽
標簽除了可以用來存儲元數據,還可以用來過濾鏡像和容器。下面的命令將會列出所有包含com.example.is-beta標簽并且運行這的容器:
languagedocker ps --filter "label=com.example.is-beta"
color標簽且值為blue的運行中的容器
languagedocker ps --filter "label=color=blue"
包含vendor和ACME的鏡像
languagedocker images --filter "label=vendor=ACME"Daemon labels
守護標簽
docker info這條命令的解釋是:Display system-wide information(顯示全部信息)
下面是我電腦上的結果:
languageadolph@geek:~$ docker info Containers: 7 Images: 44 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 58 Dirperm1 Supported: false Execution Driver: native-0.2 Kernel Version: 3.13.0-52-generic Operating System: Ubuntu 14.04.2 LTS CPUs: 4 Total Memory: 7.687 GiB Name: geek ID: HGR7:UGWW:VQVV:WYMF:CSEE:KJ4C:QS4U:IRIU:LREB:M4YC:GDJY:YPI5 Username: adolphlwq Registry: [https://index.docker.io/v1/] WARNING: No swap limit support
可以看出里面主要是關于Docker daemon的信息,這里并沒有關于它的標簽信息。但是我們可以通過``docker -d label=value`的方式給Docker daemon本身添加標簽:
languagedocker -d --dns 8.8.8.8 --dns 8.8.4.4 -H unix:///var/run/docker.sock --label com.example.environment="production" --label com.example.storage="ssd"
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26411.html
摘要:可以通過驗證自定義對象是否符合標準。此功能可用于及以上版本自定義資源。狀態和規范節分別由自定義資源內的和表示。對子資源的請求采用自定義資源對象,并忽略除狀態節之外的任何更改。該對象作為有效負載發送。 kubernetes自定義資源對象高級功能 本文首發于微信公眾號我的小碗湯,掃碼文末二維碼即可關注,歡迎一起交流! kubernetes自定義資源對象再極大程度提高了API Server的...
摘要:可以通過驗證自定義對象是否符合標準。此功能可用于及以上版本自定義資源。狀態和規范節分別由自定義資源內的和表示。對子資源的請求采用自定義資源對象,并忽略除狀態節之外的任何更改。該對象作為有效負載發送。 kubernetes自定義資源對象高級功能 本文首發于微信公眾號我的小碗湯,掃碼文末二維碼即可關注,歡迎一起交流! kubernetes自定義資源對象再極大程度提高了API Server的...
摘要:與通過來自定義監控指標自動擴展是一種根據資源使用情況自動擴展或縮小工作負載的方法。適配器刪除后綴并將度量標記為計數器度量標準。負載測試完成后,會將部署縮到其初始副本您可能已經注意到自動縮放器不會立即對使用峰值做出反應。 k8s與HPA--通過 Prometheus adaptor 來自定義監控指標 自動擴展是一種根據資源使用情況自動擴展或縮小工作負載的方法。 Kubernetes中的自...
摘要:與通過來自定義監控指標自動擴展是一種根據資源使用情況自動擴展或縮小工作負載的方法。適配器刪除后綴并將度量標記為計數器度量標準。負載測試完成后,會將部署縮到其初始副本您可能已經注意到自動縮放器不會立即對使用峰值做出反應。 k8s與HPA--通過 Prometheus adaptor 來自定義監控指標 自動擴展是一種根據資源使用情況自動擴展或縮小工作負載的方法。 Kubernetes中的自...
摘要:與通過來自定義監控指標自動擴展是一種根據資源使用情況自動擴展或縮小工作負載的方法。適配器刪除后綴并將度量標記為計數器度量標準。負載測試完成后,會將部署縮到其初始副本您可能已經注意到自動縮放器不會立即對使用峰值做出反應。 k8s與HPA--通過 Prometheus adaptor 來自定義監控指標 自動擴展是一種根據資源使用情況自動擴展或縮小工作負載的方法。 Kubernetes中的自...
閱讀 2458·2021-10-13 09:40
閱讀 3345·2019-08-30 13:46
閱讀 1130·2019-08-29 14:05
閱讀 2964·2019-08-29 12:48
閱讀 3665·2019-08-26 13:28
閱讀 2157·2019-08-26 11:34
閱讀 2292·2019-08-23 18:11
閱讀 1168·2019-08-23 12:26