【K8S】docker打过tag标签后向镜像仓库推送镜像(push)
资料1
- 首先,确保你已经登录到 Docker 仓库。可以使用以下命令登录到 Docker 仓库:
docker login
2.然后,使用以下命令将本地的 Docker 镜像标记为指定的仓库和标签:
docker tag <本地镜像名称>:<标签> <仓库地址>/<镜像名称>:<标签>
例如,如果你的本地镜像名称是 my-image,仓库地址是 my-registry.com,镜像名称是 my-image,标签是 latest,则命令如下:
docker tag my-image my-registry.com/my-image:latest //本地镜像是latest,可以不带tag,会自动带上latest
想给本地镜像打tag,可以不带仓库地址;如果要想推送到仓库,就必须带仓库地址,因为后面的docker push 命令,会默认把 第一个斜线 前面的内容当做仓库,如果没有仓库地址,会带上默认的仓库地址,类似 “https://index.docker.io/v1” ,后果是这个地址要么不通,要么你上传到错误地方了
3.最后,使用以下命令将标记的镜像推送到指定的仓库:
docker push <仓库地址>/<镜像名称>:<标签>
例如,如果你的仓库地址是 my-registry.com,镜像名称是 my-image,标签是 latest,则命令如下:
docker push my-registry.com/my-image:latest
2. 资料2
推送镜像
在推送前,必须给镜像打标签
,否则推送失败,其实打标签就是定义一个版本标识
我们看下未打标签推送的提示信息,其中swr:6666指向镜像仓库:
$ docker push swr:6666/ems/mytest:v2
The push refers to a repository [swr:6666/ems/mytest]
An image does not exist locally with the tag: swr:6666/ems/mytest
An image does not exist locally with the tag
,此时不存在v2这个版本号
看下完整的流程:
$ docker images|grep mytest
ems/mytest latest fa80b1ed50a0 About an hour ago 759.8 MB
$ docker tag fa80b1ed50a0 swr:6666/ems/mytest:v2
$ docker push swr:6666/ems/mytest:v2
The push refers to a repository [swr:6666/ems/mytest]
ef36103e327a: Mounted from zenap/cn-naf
d4a509b758e2: Mounted from zenap/cn-naf
2135a014abb0: Mounted from zenap/cn-naf
4d1de02cb818: Pushed
.....
v2: digest: sha256:17d3934291b3d48dd3c219ba23de9412c2edd6df1a27d1d1ca23be5b1f4bd9ca size: 8479
可以看到默认的版本号是latest ,你可以新增一个v2版本
docker tag详解
在此之前,先学习一下名称概念:
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runoob/centos 6.7 860c279d2fec About a minute ago 190.6 MB
runoob/ubuntu v2 70bf1840fd7c 17 hours ago 158.5 MB
runoob/ubuntu v3 80bf1t40fn7d 17 hours ago 158.5 MB
ubuntu 15.10 90d5884b1ee0 6 days ago 188 MB ‘本地原始的镜像’
- tag 就是版本号
- IMAGE ID 就是镜像id,是个字符串
- REPOSITORY 是镜像的仓库
docker tag命令语法:
语法一:
docker tag [镜像ID] [镜像名称]
-
镜像名称格式为
[REGISTRYHOST/][USERNAME/]NAME[:TAG]
例 docker tag90d5884b1ee0 runoob/ubuntu:v3
语法二:
或通过REPOSITORY替换镜像id:
docker tag IMAGE[:TAG] [镜像名称]
[:TAG]是镜像的版本,如果不指定版本,默认是lastest,如果不存在laster版本,那么必须制定一个。因为多个镜像的REPOSITORY可以相同,版本不同,因此为了分辨,需要指定!
例 docker tag ubuntu:15.10 runoob/ubuntu:v3