Docker 中 latest 标签引发的困惑(2)

一个更令人讨厌的是latest标签隐藏了其它的标签,假设你要下载带latest标签的debian镜像。哪个是它的版本呢?

$ docker images debian REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE debian              latest              4d6ce913b130        4 days ago          84.98 MB

额,不知道。事实上是7.8 wheezy版本。

$ docker pull debian:7.8 debian:7.8: The image you are pulling has been verified 511136ea3c5a: Already exists d0a18d3b84de: Already exists 4d6ce913b130: Already exists Status: Image is up to date for debian:7.8 $ docker pull debian:wheezy debian:wheezy: The image you are pulling has been verified 511136ea3c5a: Already exists d0a18d3b84de: Already exists 4d6ce913b130: Already exists Status: Image is up to date for debian:wheezy $ docker images debian REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE debian              7.8                 4d6ce913b130        4 days ago          84.98 MB debian              latest              4d6ce913b130        4 days ago          84.98 MB debian              wheezy              4d6ce913b130        4 days ago          84.98 MB

我认为Docker在下载镜像时应该把所有的标签都带上,但是我不知道为什么它没有这么做。现在的情况是用户可以拥有同一个镜像的不同版本因为服务器上用标签来标示。例如:如果wheezy和latest都在Hub上更新了,而我只获取了更新后的wheezy版本debian,那么尽管在Hub上他们可以被区分开,但是我的wheezy标签将会比本地的latest标签的版本新。

上述只是覆盖了latest的大部分语义以及它造成的常见误解。这种情况怎么能够改善呢?个人认为,可以取消latest标签并用一个更接近其字面意思的词来代替,例如default。我也希望可以看到一些改进标签原作方式的工作,例如同时更新一个镜像的全部标签。与此同时,我也强烈建议资源库管理员去警惕这个latest标签并彻底废弃它。

CentOS 6/7系列安装Docker

Docker的搭建Gitlab CI 全过程详解

Docker安装应用(CentOS 6.5_x64)

在 Docker 中使用 MySQL

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c3b6a808225ee49f3d23c2854acd77c4.html