Docker Registry 分类

Registry 用于保存 docker 镜像,包括镜像的层次结构和元数据。用户可以自建 Registry,也可使用官方的 Docker Hub。docker daemon 默认使用 https 协议与 Registry 通信。

  • Sponsor Registry:第三方 Registry,供客户和 Docker 社区使用
  • Mirror Registry:第三方 Registry,只让客户使用
  • Vendor Registry:由发布 Docker 镜像的供应商提供的 Registry
  • Private Registry:通过设有防火墙和额外安全层的私有实体提供的 Registry

    构建Private Registry

    使用 docker hub 的 registry 镜像,或者使用 CentOS yum 仓库提供的 docker-registry。
  1. yum install docker-distribution -y
  2. rpm -ql docker-distribution
  3. systemctl start docker-distribution
  4. #重新打标签:服务器地址和端口,忽略用户名,表示为顶层仓库
  5. docker tag myweb:v0.1-12 instance-1:5000/myweb:v0.1-12

docker push和 pull 默认使用 https 与 Registry 通信,如果 docker 仓库在局域网内部,可以编辑 docker 配置文件,修改daemon的运行参数,添加不安全的仓库地址和端口号: vim /etc/docker/daemon.json

{
   #定义不安全的仓库的主机名和端口
   "insecure-registries": ["instance-1:5000"] 
}

重启 docker 服务后,推送镜像:
image.png

Habor

使用 docker-registry 容器构建的私有仓库没有图形化界面并且功能单一。
Harbor 是 CNCF 基金会下的一个私有仓库软件项目,由 VMware 公司在 docker registry 之上进行的二次开发,他能提供一个精美的 web 前端页面和安全相关的功能,用户管理等功能。
特性

  • 多租户内容签署和校验
  • 安全和风险分析
  • 审计日志
  • 基于角色的访问控制
  • 在实例之间的镜像复制
  • 可扩展的 API 和图形化界面
  • 国际化

由于 harbor 的部署较复杂,所以 vmware 将 habor 容器化,需要借助docker compose(单机容器编排工具) 来部署。
获取离线安装包

wget https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.1.tgz
tar xf harbor-offline-installer-v1.9.1.tgz -C /usr/local/
yum install docker-compose -y
/usr/local/src/harbor/install.sh

停止 harbor: docker-compose stop