docker tag 命令以及其中的一些概念--之我见
1. 重要的本质的东西是 image
- docker 最有用的东西是image,这个应该可以被大部分人接受
- 查看官网的 tag 命令,一行解释是 【Tag an image into a repository】。粗糙的翻译成:【将一个 image 打入一个仓库】。
- 也就是是说,之所以要给 image 起个名字或者价格标签的唯一目的是为了【分发】的方便,也就是你如何将你本地的 image 以名字的形式分发到官方hub或者私有hub上。
- 这样就来推出这个结论,一个 image 可以有任意个名字,每个名字表明你想把这个 image 推到 哪个 仓库中,并且以什么名字存在。
- 解释上面的话:你本地制作了一个 image 这个 image 有一个 id 唯一标识这个 image,当你想把他推到 官方hub的时候,你必须先起个名字。【注:一个image 可以没有名字,并且有很多 image 没有名字,你不信docker images ,看看,有一堆 none】。
- 好,先起个名字,例如 docker tag xxxxxxx goodname
- 上面这个命令就是 给xxxxxxx 这个image 起了个名字,叫做 goodname
- 行了,你可以推了 docker push goodname,这样它会提示你需要验证授权,不管如何,现在是可以push了。
- 然后,你如果想推到你自己搭建的Registry,怎么办呢,还是通过名字来控制
- 这样,docker tag XXXXXX www.self.com/user/goodname
- 看,名字是网址的形式,这样然后,你就可以 docker push www.self.com/user/goodname,这样来推到自己的Registry上了。
- 但是,注意查看这两个名字,发现他们的 image id 是一样的,也就是说 同样的image 确实可以起不同的名字。
- 结论:名字就是用来控制 分发的。
- 其他用法:名字也可以用来唯一标识一个 image ,方便人工记忆,省的人需要记忆 毫无规律的 image id。