1. 前言
docker 当前最火热的 devops 技术之一,docker hub 提供了各种丰富的环境供我们使用,在docker的使用过程中,我们经常会遇到registry
与repository
这两个单词,特别是对于后者,我们经常会弄不清楚其含义,这里主要讲一下 docker 中registry和repository区别与联系。
2. docker registry
2.1 registry定义
下面是对docker registry的一个基本定义:
Docker registry is a service that is storing your docker images
翻译过来就是Docker registry可以是部署在第三方平台上的一个公有或私有仓库,在 docker 中就是指像 docker hub 这样的地方,registry 实际上是存放各个repository 的地方
例如有如下仓库:
2.2 企业的 registry
除了 docker hub 这个超大的 registry 之外,也可以在自己的服务器上搭建私有的 registry,搭建方法可参考这里
3. docker repository
3.1 repository定义
下面是对docker repository的一个基本定义:
Docker repository is a collection of different images with same name, that have different tags
repository 翻译过来就是Docker存储库是一个具有相同名称的不同镜像的集合,这些镜像具有不同的标记,通俗的理解就是docker repository一般存放的是一类镜像,这一类镜像只不过是 tag 版本不同。
在一个repository中一个镜像(image)的tag就是一个alphanumeric
标识。
例如https://hub.docker.com/r/library/python/tags/,官方的python镜像就有很多不同的tag,这些tag都是Docker Hub中官方python repository的成员。
3.2 私有 repository
对于 docker hub 中私人 repository,建议采用docker hub用户名/repository:tagname 这样的形式
对于私有repository 建议采用ip:port/repository:tagname 这样的形式命令
实际上 repository 本身就是镜像名,比如 busybox 本身虽是镜像,其实也是仓库的名字。