开始之前

之前写过两篇关于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镜像装到仓库需要几步?>> 这篇文章。

参考

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

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

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

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

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

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

doker&k8s Qun [703906133]