首页 > 解决方案 > 运行 Docker 注册表时 :2 是什么意思?

问题描述

在我发现的有关 Docker 注册表的每个教程中,都有这样的命令:

docker run -d -p 5000:5000 --name registry registry:2

此处使用标签2。为什么?我试过没有标签的注册表,它也有效。我认为这与 Docker 注册表的不同 API(?)有关,但我不确定。

标签: dockerdocker-registry

解决方案


您对 API 的看法是正确的。来自github.com/docker/distribution

分配

用于打包、运送、存储和交付内容的 Docker 工具集。

该存储库的主要产品是用于存储和分发 Docker 映像的Docker Registry 2.0实现。它以新的 API 设计取代了docker/docker-registry项目,专注于安全性和性能。

和:

登记处

用于 docker 1.6+的Docker Registry HTTP API V2的实现。


为什么两者都有效?

当你docker pull registry实际上pull registry:latest和它有相同的摘要时registry:2。演示:

$ docker pull registry
Using default tag: latest
latest: Pulling from library/registry
169185f82c45: Already exists 
046e2d030894: Pull complete 
188836fddeeb: Pull complete 
832744537747: Pull complete 
7ceea07e80be: Pull complete 
Digest: sha256:870474507964d8e7d8c3b53bcfa738e3356d2747a42adad26d0d81ef4479eb1b
Status: Downloaded newer image for registry:latest

$ docker pull registry:2
2: Pulling from library/registry
Digest: sha256:870474507964d8e7d8c3b53bcfa738e3356d2747a42adad26d0d81ef4479eb1b
Status: Downloaded newer image for registry:2

推荐阅读