天天看点

docker打过tag标签后向镜像仓库推送镜像(push)推送镜像docker tag详解

推送镜像

在推送前,

必须给镜像打标签

,否则推送失败,其实打标签就是定义一个版本标识

我们看下未打标签推送的提示信息,其中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详解

在此之前,先学习一下名称概念:

[email protected]:~$ 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命令语法:

语法一:

  • 镜像名称格式为

    [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