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。

05-11 14:48