registry.access.redhat.com/openshift3/jenkins-2-rhel7:v3.11.59-2
镜像标签是应用于存储库中容器镜像的标签,用于区分镜像流中特定镜像与其他镜像。通常,标签表示某种版本号。例如,这里:v3.11.59-2
是标签。
registry.access.redhat.com/openshift3/jenkins-2-rhel7:v3.11.59-2
您可以向镜像添加其他标签。例如,一个镜像可以同时分配:v3.11.59-2
和:latest
标签。
AWS上的Red Hat OpenShift Service提供了oc tag
命令,它类似于docker tag
命令,但操作对象是镜像流而不是镜像本身。
镜像会随着时间推移而发展,其标签也反映了这一点。通常,镜像标签始终指向构建的最新镜像。
如果标签名称中嵌入的信息过多,例如v2.0.1-may-2019
,则该标签仅指向镜像的一个版本,并且永远不会更新。使用默认的镜像修剪选项,此类镜像永远不会被删除。
如果标签名为v2.0
,则镜像版本更有可能发生变化。这会导致更长的标签历史记录,因此,镜像清理程序更有可能删除旧的和未使用的镜像。
虽然标签命名约定由您决定,但以下是一些格式为<image_name>:<image_tag>
的示例。
描述 | 示例 |
---|---|
版本 |
|
架构 |
|
基础镜像 |
|
最新(可能不稳定) |
|
最新稳定版 |
|
如果您需要在标签名称中使用日期,请定期检查旧的和不受支持的镜像和istags
并将其删除。否则,您可能会因为保留旧镜像而导致资源使用量增加。
AWS上的Red Hat OpenShift Service中的镜像流包含零个或多个由标签标识的容器镜像。
有不同类型的标签可用。默认行为使用permanent
标签,它指向特定时间点的特定镜像。如果permanent
标签正在使用并且源发生更改,则目标的标签不会更改。
tracking
标签意味着在导入源标签时会更新目标标签的元数据。
您可以使用oc tag
命令向镜像流添加标签。
$ oc tag <source> <destination>
例如,要将ruby
镜像流static-2.0
标签配置为始终引用ruby
镜像流2.0
标签的当前镜像:
$ oc tag ruby:2.0 ruby:static-2.0
这会在ruby
镜像流中创建一个名为static-2.0
的新镜像流标签。新标签直接引用oc tag
运行时ruby:2.0
镜像流标签指向的镜像ID,并且它指向的镜像永远不会改变。
要确保在源标签更改时更新目标标签,请使用--alias=true
标志。
$ oc tag --alias=true <source> <destination>
使用跟踪标签创建永久别名,例如 |
您还可以添加--scheduled=true
标志,以便定期刷新或重新导入目标标签。周期在系统级别全局配置。
--reference
标志创建一个不会导入的镜像流标签。该标签永久指向源位置。
如果您想指示AWS上的Red Hat OpenShift Service始终从集成注册表获取标记的镜像,请使用--reference-policy=local
。注册表使用直通功能将镜像提供给客户端。默认情况下,镜像 Blob 由注册表在本地镜像。因此,下次需要时可以更快地提取它们。该标志还允许从不安全的注册表中提取,而无需向容器运行时提供--insecure-registry
,只要镜像流具有不安全注释或标签具有不安全导入策略即可。
您可以从镜像流中删除标签。
要完全从镜像流中删除标签,请运行:
$ oc delete istag/ruby:latest
或
$ oc tag -d ruby:latest
您可以使用标签来引用镜像流中的镜像,方法是使用以下引用类型。
引用类型 | 描述 |
---|---|
|
|
|
|
|
|
查看示例镜像流定义时,您可能会注意到它们包含ImageStreamTag
的定义和对DockerImage
的引用,但与ImageStreamImage
无关。
这是因为当您将镜像导入或标记到镜像流中时,AWS上的Red Hat OpenShift Service会自动创建ImageStreamImage
对象。您永远不必在用于创建镜像流的任何镜像流定义中显式定义ImageStreamImage
对象。
要引用给定镜像流和标签的镜像,请使用ImageStreamTag
。
<image_stream_name>:<tag>
要引用给定镜像流和镜像sha
ID的镜像,请使用ImageStreamImage
。
<image_stream_name>@<id>
<id>
是特定镜像的不可变标识符,也称为摘要。
要引用或检索给定外部注册表的镜像,请使用DockerImage
。
openshift/ruby-20-centos7:2.0
如果未指定标签,则假定使用 |
您还可以引用第三方注册表。
registry.redhat.io/rhel7:latest
或具有摘要的镜像。
centos/ruby-22-centos7@sha256:3a335d7d8a452970c5b4054ad7118ff134b3a6b50a2bb6d0c07c746e8986b28e