6.7. 使用镜像流
下面章节介绍如何使用镜像流和 imagestreamtag。
6.7.1. 获取有关镜像流的信息
您可获取有关镜像流的常规信息及其指向的所有标签的详细信息。
流程
获取有关镜像流的常规信息及其指向的所有标签的详细信息:
$ oc describe is/<image-name>
例如:
$ oc describe is/python Name: python Namespace: default Created: About a minute ago Labels: <none> Annotations: openshift.io/image.dockerRepositoryCheck=2017-10-02T17:05:11Z Docker Pull Spec: docker-registry.default.svc:5000/default/python Image Lookup: local=false Unique Images: 1 Tags: 1 3.5 tagged from centos/python-35-centos7 * centos/python-35-centos7@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 About a minute ago
获取有关特定 imagestreamtag 的所有可用信息:
$ oc describe istag/<image-stream>:<tag-name>
例如:
$ oc describe istag/python:latest Image Name: sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 Docker Image: centos/python-35-centos7@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 Name: sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 Created: 2 minutes ago Image Size: 251.2 MB (first layer 2.898 MB, last binary layer 72.26 MB) Image Created: 2 weeks ago Author: <none> Arch: amd64 Entrypoint: container-entrypoint Command: /bin/sh -c $STI_SCRIPTS_PATH/usage Working Dir: /opt/app-root/src User: 1001 Exposes Ports: 8080/tcp Docker Labels: build-date=20170801
输出的信息多于显示的信息。
6.7.2. 为镜像流添加标签
您可为镜像流添加额外标签。
流程
使用
oc tag
命令添加指向其中一个现有标签的标签:$ oc tag <image-name:tag1> <image-name:tag2>
例如:
$ oc tag python:3.5 python:latest Tag python:latest set to python@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25.
确认镜像流有两个标签,一个 (
3.5
) 指向外部容器镜像,另一个标签 (latest
) 指向同一镜像,因为它基于第一个标签创建而成。$ oc describe is/python Name: python Namespace: default Created: 5 minutes ago Labels: <none> Annotations: openshift.io/image.dockerRepositoryCheck=2017-10-02T17:05:11Z Docker Pull Spec: docker-registry.default.svc:5000/default/python Image Lookup: local=false Unique Images: 1 Tags: 2 latest tagged from python@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 * centos/python-35-centos7@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 About a minute ago 3.5 tagged from centos/python-35-centos7 * centos/python-35-centos7@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 5 minutes ago
6.7.3. 为外部镜像添加标签
您可为外部镜像添加标签。
流程
通过使用
oc tag
命令执行所有标签相关操作,添加指向内部或外部镜像的标签:$ oc tag <repository/image> <image-name:tag>
例如,该命令可将
docker.io/python:3.6.0
镜像映射到python
镜像流中的3.6
标签。$ oc tag docker.io/python:3.6.0 python:3.6 Tag python:3.6 set to docker.io/python:3.6.0.
如果外部镜像安全,则您必须创建带有凭证的 secret 以访问该 registry。
6.7.4. 更新 imagestreamtag
您可更新标签以反映镜像流中的另一标签。
流程
更新标签:
$ oc tag <image-name:tag> <image-name:latest>
例如,以下命令更新了
latest
标签,以反映镜像流中的3.6
标签:$ oc tag python:3.6 python:latest Tag python:latest set to python@sha256:438208801c4806548460b27bd1fbcb7bb188273d13871ab43f.
6.7.5. 删除 imagestreamtag
您可以从镜像流中删除旧标签。
流程
从镜像流中删除旧标签:
$ oc tag -d <image-name:tag>
例如:
$ oc tag -d python:3.5 Deleted tag default/python:3.5.
6.7.6. 配置定期导入 imagestreamtag
使用外部容器镜像 registry 时,如需定期重新导入镜像(例如为了获取最新安全更新),可使用 --scheduled
标志。
流程
调度导入镜像:
$ oc tag <repository/image> <image-name:tag> --scheduled
例如:
$ oc tag docker.io/python:3.6.0 python:3.6 --scheduled Tag python:3.6 set to import docker.io/python:3.6.0 periodically.
该命令可使 OpenShift Container Platform 定期更新该特定镜像流标签。此周期是集群范围的设置,默认设为 15 分钟。
删除定期检查,重新运行上述命令,但忽略
--scheduled
标志。这会将其行为重置为默认值。$ oc tag <repositiory/image> <image-name:tag>