1.简单说明

  • Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

2.组件

  • Harbor 由 5 个容器组成:
容器(组件)名称说明
Proxy由 Nginx 服务器构成的反向代理
Registry由 Docker 官方的开源 registry 镜像构成的容器实例
Core services构成此容器的代码是 Harbor 项目的主体
Mysql由官方 MySql 镜像构成的数据库容器
Log运行着 rsyslogd 的容器,通过 log-driver 的形式收集其他容器的日志
  • 其中Core services是Harbor的核心功能,主要提供以下的服务:
组件说明
UI提供图形化界面,帮助用户管理registry上的镜像(image), 并对用户进行授权
Webhook为了及时获取registry 上image状态变化的情况, 在Registry上配置webhook,把状态变化传递给UI模块
Token负责根据用户权限给每个docker push/pull命令签发token. Docker 客户端向Registry服务发起的请求,如果不包含token,会被重定向到这里,获得token后再重新向Registry进行请求
  • 具体关系图,如图所示:
    Harbor.png
  • 测试环境
    | :---: | :----: |
    | 测试配置 | 8核4G |
    | 测试系统 | Centos7.7-1908 |
    | Docker版本 | 19.03.6 |
    | Docker-Compose版本 | 1.25.1 |
    | Harbor版本 | 1.10.3 |

3.安装Harbor

  • 下载Harbor
    Harbor有在线版,以及离线版,这里就只介绍离线版的安装
wget https://github.com/goharbor/harbor/releases/download/v1.10.3/harbor-offline-installer-v1.10.3.tgz
  • 解压并且更改配置
    将hostname更改为本机ip
tar zxvf harbor-offline-installer-v1.10.3.tgz
cd harbor
vim harbor.yml
hostname = 10.0.0.60
  • 执行安装
    执行安装脚本,安装过程过于长,我就不放了,一般只要修改好IP,然后执行安装脚本就没有什么大问题的
sh install.sh
  • 安装完成
    看到以下信息,就说明已经正常安装完成了
    QQ截图20200617161741.jpg

  • 访问私有仓库
    浏览器输入:10.0.0.60,默认账户/密码:admin/Harbor12345
    QQ截图20200617162036.jpg

    登陆之后修改一下密码。

4.验证使用

  • 去另一台装有Docker的机器进行pull(拉取)镜像
    拉取前提是要在拉取的机器配置私有仓库并且登录仓库
cat > /etc/docker/daemon.json << EOF
{ "insecure-registries":["10.0.0.16"] }
EOF
[root@Test harbor]docker login -u admin -p Harbor12345 10.0.0.60
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded

提示登录成功了

  • 拉取镜像
    从私有仓库拉取Nginx,我们已经提前把一些镜像存到了私有仓库
[root@Test harbor]docker pull 10.0.0.60/library/Nginx:1.16
1.16: Pulling from library/Nginx
923sd955edcd: Pull complete
Digest:sha256:923sd90a8912e16d4beb8689720a175852c8d60f52f0b4447a209bb01e336a
Status: Downloaded newer image for 10.0.0.60/library/Nginx:1.16

拉取完成,说明我们已经完成私有仓库的配置


一个热爱学习的运维