壹
之前写过两篇关于Docker仓库的文章,把Docker镜像装到仓库需要几步? 与 没有Docker仓库还能分发镜像吗? 。
今天讲讲如何部署一个私有仓库,主角是大名鼎鼎的 VMware开源项目 Harbor,VMware公司估计大家都有所耳闻,做为虚拟化界的一哥VMware技术实力雄厚并拥有广泛的用户群体,企业级产品vSphere ESXi,家用级别的Workstation 都是其代表作。
Harbor从2014年开始由VMware中国研发中心内部立项和使用,并于2016年对社区开源,2018年8月Harbor加入云原生计算基金会(CNCF),Harbor项目扎根、成长于中国社区深受中国用户喜爱。
Harbor版本更新较快目前最新稳定版本V1.82,如需下载最新版本或者提交Issue 可以在github 中找到项目。https://github.com/goharbor/harbor
目前还在使用的 v1.4.0版本 harbor仓库。
贰
一些概念
1. 镜像仓库
是集中存放docker镜像的地方。例如镜像地址 hub.zongming.net/dongnan/centos:6.7
hub.zongming.net 是注册服务器(registry)
dongnan 是仓库(用户)名称,
centos 是镜像名称,
:6.7 是镜像版本号。
注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,每个仓库下面有多个镜像,而每个镜像有多个标签。
2. 公共仓库
Docker 官方维护了一个公共仓库 Docker Hub (https://hub.docker.com),其中已经包括了超过 15000的镜像(2016年)。大部分需求都可以通过在 Docker Hub中找到。
3. 私有仓库
某些时候使用 Docker Hub公共仓库可能不方便(如含有源代码的自定义python镜像),Docker官方提供了docker-registry工具,用于创建一个私有仓库,不过docker-registry 在易用性、功能等方面远不如 Harbor。
叁
Harbor 支持在Docker环境下部署。
1. 环境要求
Linux 系统,推荐 ubuntu server 16.04+ 或更高的LTS版本。
docker 17.06.0-ce+ ,推荐使用最新的稳定版本。
docker-compose 1.23.0+ ,推荐使用最新的稳定版本。
如果没有安装docker 可以参考这篇文章
https://docs.docker.com/install/linux/docker-ce/ubuntu/
如果没有安装docker-compose 可以参考这篇文章
https://docs.docker.com/compose/install/
2. 部署方式
由于Harbor包含多个镜像,部署过程中可能会遇到网络超时问题,推荐使用离线安装方式。
以v1.8.2版本为例离线安装包下载地址
https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.2.tgz
3. 配置选项
tar zxf harbor-offline-installer-v1.8.2.tgz
cd harbor/
vim harbor.cfg
配置文件的参数分为两部分,必选参数与可选参数。
a. 必选参数:
hostname: 主机名(域名)。
data_volume: harbor数据卷目录。
harbor_admin_password: 管理员的账号密码。
database:
password: 数据库root用户的密码
jobservice:
max_job_workers: 最大进程数量,默认值为10 选则默认值。
log:
日志级别,日志轮转,日志大小,日志位置,等选项保持默认即可。
b. 可选参数:
需要注意的是如果你使用 HTTPS那么需要配置
https: 取消注释
port: 443 取消注释
certificate: 取消注释以及你的crt证书文件
private_key: 取消注释以及你的key私钥文件
我的https配置示例如下。
https:
# # https port for harbor, default is 443
port: 443
# # The path of cert and key files for nginx
certificate: ./keys/server.crt
private_key: ./keys/server.key
更多的参数配置请参考:
https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
4. 执行shell脚本自动开始安装
5. 部署完成
肆
部署完成后就可以使用harbor了。
1. 在浏览器输入你的仓库地址
2. 登录后尝试创建一个项目例如 demo
3. 实践作业
部署好的Harbor仓库后,尝试为创建好的项目demo 推送一个镜像,并在其它的docker主机上下载此镜像。
推送镜像完成后类似如下
提示,登录仓库、推送镜像、下载镜像可以参考这篇文章 把Docker镜像装到仓库需要几步?
本期搬砖就到这里下期再搬