相比用过Docker的人,一定知道Docker的镜像。Docker的镜像地址分三类:

  • Docker官方维护的镜像,镜像地址格式是仓库:标签。典型的比如:nginx:alpine
  • Docker官方仓库托管的,由社区用户维护的镜像。镜像地址格式是:命名空间/仓库:标签。典型的比如:nginx/unit:alpine
  • 用户自行托管维护的镜像。镜像地址格式是:域名/命名空间/仓库:标签,其中命名空间是可选的,可以没有也可以有很多层。比如:quay.io/coreos/etcd:latest

镜像地址会在很多地方出现,比如docker ps的输出中。如果你用过这些命令,通常就会知道一个短小的镜像地址是有多舒服。

对于镜像的托管,官方是提供免费托管的。不过和Github类似,你的镜像默认是公开镜像(所有人可以pull,但只能你自己可以push)的。每个人只有一个名额是私有镜像。

第三方倒是有很多提供私有镜像托管的,不过使用起来都多有不便。典型的比如AWS、GCP,他们家的需要用他们自己的SDK。再比如阿里云、腾讯云、网易蜂巢,他们倒是可以直接兼容用docker的客户端,但是镜像地址那叫一个长啊。

考虑到比如镜像内容保密、复杂的授权模式(按IP、按范围、按仓库、按时间……),自行搭建镜像服务则成为了首选。

那么怎样自行搭建镜像服务,自行搭建镜像服务时又遇到了那些坑呢?

请关注我们后续的文章:《自行搭建镜像服务的那些坑》