推送镜像
在推送前,
必须给镜像打标签
,否则推送失败,其实打标签就是定义一个版本标识
我们看下未打标签推送的提示信息,其中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命令语法:
语法一:
- 镜像名称格式为
例 docker tag90d5884b1ee0 runoob/ubuntu:v3[REGISTRYHOST/][USERNAME/]NAME[:TAG]
语法二:
或通过REPOSITORY替换镜像id:
docker tag IMAGE[:TAG] [镜像名称]
[:TAG]是镜像的版本,如果不指定版本,默认是lastest,如果不存在laster版本,那么必须制定一个。因为多个镜像的REPOSITORY可以相同,版本不同,因此为了分辨,需要指定!
例 docker tag ubuntu:15.10 runoob/ubuntu:v3