This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.2. 标记镜像
以下章节提供在容器镜像上下文中使用镜像标签(tag)的概述和说明,以便使用 OpenShift Container Platform 镜像流及其标签。
5.2.1. 镜像标签 复制链接链接已复制到粘贴板!
镜像标签(tag)是应用于存储库中容器镜像的标签,用于将特定镜像与镜像流中的其他镜像区分开来。标签通常代表某种版本号。例如,这里 :v3.11.59-2 是标签:
registry.access.redhat.com/openshift3/jenkins-2-rhel7:v3.11.59-2
registry.access.redhat.com/openshift3/jenkins-2-rhel7:v3.11.59-2
您可以向镜像添加其他标签。例如,可为镜像分配 :v3.11.59-2 和 :latest 标签。
OpenShift Container Platform 提供 oc tag 命令,该命令类似于 docker tag 命令,但是在镜像流上运行,而非直接在镜像上运行。
5.2.2. 镜像标签惯例 复制链接链接已复制到粘贴板!
镜像随时间不断发展,其标签反应了这一点。一般来说,镜像标签会始终指向最新镜像构建。
如果标签名称中嵌入太多信息,如 v2.0.1- May-2019,则标签仅指向镜像的一个版本,不会更新。使用默认镜像修剪选项,此类镜像不会被删除。在庞大集群中,为每个修改后的镜像创建新标签这种模式最终可能会使用早已过期的镜像的多余标签元数据来填充 etcd 数据存储。
如果标签命名为 v2.0,则镜像修改的可能性更大。这会导致标签历史记录更长,镜像修剪器 (pruner) 也更有可能删除旧的和未使用的镜像。
您可自行决定标签命名惯例,下面提供了一些 <image_name>:<image_tag> 格式的示例:
| 描述 | 示例 |
|---|---|
| 修订 |
|
| 架构 |
|
| 基础镜像 |
|
| 最新(可能不稳定) |
|
| 最新稳定 |
|
如果标签名称中需要日期,请定期检查旧的和不受支持的镜像以及 istags,并予以删除。否则,您可能遇到保留的旧镜像导致资源使用量增加的情况。
5.2.3. 向镜像流中添加标签 复制链接链接已复制到粘贴板!
OpenShift Container Platform 中的镜像流包含 0 个或更多由标签标识的容器镜像。
有各种不同类型的标签可用。默认行为使用 permanent 标签,指向一段时间内的特定镜像。如果正在使用 permanent 标签并且源更改,则目的地的标签不会更改。
tracking 标签表示,在导入源标签期间对目的地标签的元数据进行了更新。
流程
您可使用
oc tag命令向镜像流中添加标签:oc tag <source> <destination>
$ oc tag <source> <destination>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:要将
ruby镜像流static-2.0标签配置为始终引用ruby镜像流2.0标签的当前镜像:oc tag ruby:2.0 ruby:static-2.0
$ oc tag ruby:2.0 ruby:static-2.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会在
ruby镜像流中创建名为static-2.0的新镜像流标签。运行oc tag时,新标签会直接引用ruby:2.0镜像流标签所指向的镜像 id,而所指向的镜像不会改变。为确保目标标签在源标签更改时进行更新,请使用
--alias=true标志:oc tag --alias=true <source> <destination>
$ oc tag --alias=true <source> <destination>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用跟踪标签创建持久别名,如 latest 或 stable。该标签只在单一镜像流中正常工作。试图创建跨镜像流别名会出错。
-
您还可添加
--scheduled=true标志来定期刷新或重新导入目的地标签。周期在系统级别进行全局配置。 --reference标志会创建一个非导入的镜像流标签。该标签持久指向源位置。如果您想指示 OpenShift Container Platform 始终从集成的 registry 中获取标记的镜像,请使用
--reference-policy=local。registry 使用 pull-through 功能为客户端提供镜像。默认情况下,镜像 Blob 由 registry 在本地进行镜像。因此,下次需要时便可更快拉取(pull)。只要镜像流具有不安全的注解,或者标签具有不安全的导入策略,该标志也允许从不安全的 registry 拉取(pull),无需向容器运行时提供--insecure-registry。
5.2.4. 从镜像流中删除标签 复制链接链接已复制到粘贴板!
您可以从镜像流中删除标签。
流程
要从镜像流运行中完全删除标签:
oc delete istag/ruby:latest
$ oc delete istag/ruby:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或:
oc tag -d ruby:latest
$ oc tag -d ruby:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.5. 引用镜像流中的镜像 复制链接链接已复制到粘贴板!
您可以通过以下引用类型,使用标签来引用镜像流中的镜像。
| 引用类型 | 描述 |
|---|---|
|
|
|
|
|
|
|
|
|
查看镜像流定义示例时,您可能会发现它们包含 ImageStreamTag 的定义以及对 DockerImage 的引用,但与 ImageStreamImage 无关。
这是因为当您将镜像导入或标记到镜像流时,OpenShift Container Platform 中会自动创建 ImageStreamImage 对象。您不必在用于创建镜像流的任何镜像流定义中显式定义 ImageStreamImage 对象。
流程
要引用给定镜像流和标签的镜像,请使用
ImageStreamTag:<image_stream_name>:<tag>
<image_stream_name>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要引用给定镜像流的镜像和镜像
shaID,请使用ImageStreamImage:<image_stream_name>@<id>
<image_stream_name>@<id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <id>是针对特定镜像的不可变标识符,也称摘要。要引用或检索给定外部 registry 的镜像,请使用
DockerImage:openshift/ruby-20-centos7:2.0
openshift/ruby-20-centos7:2.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果未指定标签,则会假定使用
latest标签。此外,您还可引用第三方 registry:
registry.redhat.io/rhel7:latest
registry.redhat.io/rhel7:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者带有摘要的镜像:
centos/ruby-22-centos7@sha256:3a335d7d8a452970c5b4054ad7118ff134b3a6b50a2bb6d0c07c746e8986b28e
centos/ruby-22-centos7@sha256:3a335d7d8a452970c5b4054ad7118ff134b3a6b50a2bb6d0c07c746e8986b28eCopy to Clipboard Copied! Toggle word wrap Toggle overflow