13.7.5. 通过手动推送镜像来创建镜像流
也可以通过手动将镜像推送到内部 registry 来自动创建镜像流。这只在使用 OpenShift Container Platform 内部 registry 时实现。
在执行此步骤前,必须满足以下条件:
- 您要推送到的目标项目必须已经存在。
-
用户必须获得该项目中的
{get, update} "imagestream/layers"
授权。另外,因为镜像流不存在,用户必须在该项目中被授权{create} "imagestream"
。如果您是项目管理员,则有这些权限。
注意
system:image-pusher 角色不授予创建新镜像流的权限,只是将镜像推送到现有镜像流,因此不能用来将镜像推送到还不存在的镜像流,除非还授予用户其他权限。
通过手动推送镜像来创建镜像流:
- 首先,登录到内部 registry。
然后,使用适当的内部 registry 位置标记您的镜像。例如,如果您已在本地拉取 docker.io/centos:centos7 镜像:
$ docker tag docker.io/centos:centos7 172.30.48.125:5000/test/my-image
最后,将镜像推送到内部 registry。例如:
$ docker push 172.30.48.125:5000/test/my-image The push refers to a repository [172.30.48.125:5000/test/my-image] (len: 1) c8a648134623: Pushed 2bf4902415e3: Pushed latest: digest: sha256:be8bc4068b2f60cf274fc216e4caba6aa845fff5fa29139e6e7497bb57e48d67 size: 6273
验证镜像流是否已创建:
$ oc get is NAME DOCKER REPO TAGS UPDATED my-image 172.30.48.125:5000/test/my-image latest 3 seconds ago