开始之前

之前写过两篇关于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 仓库 Harbor_第1张图片

一些概念

  • 镜像仓库
    是集中存放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脚本自动开始安装
    Docker 仓库 Harbor_第2张图片

  • 安装完成
    Docker 仓库 Harbor_第3张图片

使用

  • 在浏览器输入你的仓库地址
    Docker 仓库 Harbor_第4张图片

  • 登录后尝试创建一个项目例如 demo
    Docker 仓库 Harbor_第5张图片

  • 最后留一个实践作业

    部署好的Harbor仓库后,尝试为创建好的项目demo 推送一个镜像,并在其它的docker主机上下载此镜像。
    提示,登录仓库、标记镜像、推送镜像、下载镜像可以参考 <<把Docker镜像装到仓库需要几步?>> 这篇文章。

参考

初识 docker 仓库 请添加链接描述

docker 配置远程仓库 请添加链接描述

系统信任自签名证书 请添加链接描述

用Harbor实现容器镜像仓库的管理和运维 请添加链接描述

部署 harbor 仓库请添加链接描述

https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md