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。
yum install docker-distribution -y
rpm -ql docker-distribution
systemctl start docker-distribution
#重新打标签:服务器地址和端口,忽略用户名,表示为顶层仓库
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"]
}
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