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