Harhor服务概述
Harhor是个用于存储和分发Docker镜像的企业Best服务器.通过添加一些企业必需的功能特性 :如安全标识和管理等,扩展了并源Docker Dsrtbuionon作为个企业级私有Registy服务器 ; Harbo提供了更好的性能和安全。提开用户使Regsty构建和运行环境传输镜像的效率. Harbor支持安装在多个esty节点的镜像资源复制,镜像全部保存在私有egistry中,确保数据和知识产权在公司内部网络中管控另外, Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等
特性
●基于角色的访问控制:用户与docker镜像仓库通过‘项目”进行组织管理,一个用户可以对个多镜像仓库在同一命名空间( project )里有不同的权限
●镜像复制:镜像可以在多个registry实例中复制(同步) ,尤其适合负载均衡,高可用,混合云和多云的场景
●图形化用户界面:用户可以浏览器来浏览,检索当前docker镜像仓库,管理项目和命名空间
●AD/LDAP支持 : harbor可以集成企业内部已有的AD/LDAP ,用户鉴权认证管理
●审计管理:所有针对镜像仓库的操作都可以被记录追溯,用户审计管理
●国际化:已拥有英文、中文、德文、日文和俄文的本地化版本
●RESTful API: restful api提供给管理员对于harbor更多的操控,使得与其他管理软件集成变得更容易
●部署简单:提供在线和离线两种安装工具

| 组件 |
说明 |
实现 |
| Proxy |
用户的请求到egistyy/ui/token service的反向代理 |
nginx :使用nginx官方镜像进行配置 |
| registry |
镜像的push/pull命令实时功能 |
registry :使用registry官方镜像 |
| Database |
保存项目/用户/角色/复制策略等信息到数据库中 |
harbor-db :Mariadb的官方镜像用于保存harbor的数据库信息 |
| Core Service:Ul/token/webhook |
用户进行镜像操作的界面实现,通过webhook的机制保证镜像状态的变化harbor能够及时了解以便进行日志更新等操作,而项目用户角色则通过token的进行镜像的push/pull等操作 |
harbor-ui等 |
| Job services |
镜像复制,可以在harbor实例之间进行镜像的复制或者同步等操作 |
harbor-jobservice |
| Log cllector |
负责收集各个镜像的日志信息进行统一管理 |
harbor-log :缺省安装下日志的保存场所为/var/log/harbor |
服务器信息
| IP |
服务 |
| 172.16.1.12 |
Harbor |
| 172.16.1.13 |
Docker |
两台节点共同操作
安装依赖
1
| yum -y install yum-utils device-mapper-persistent-data lvm2
|
安装docker
1 2 3 4 5 6 7 8
| #获取docker文件 yum-config-manager --add-repo=http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker yum -y install docker-ce
#启动docker容器 systemctl start docker
|
Harbor节点
安装docker-compose
1 2 3
| #将docker-compose文件移动到/usr/local/bin下并赋予权限 mv docker-compose /usr/local/bin/ chmod a+x /usr/local/bin/docker-compose
|
解压软件包
1 2 3
| tar zxf harbor-offline-installer-v1.6.2.tgz -C /usr/local/ cd /usr/local/harbor/ cp harbor.cfg harbor.cfg.bak
|
修改配置文件
1 2 3
| vi harbor.cfg 修改: hostname = 172.16.1.12
|
安装harbor
harbor操作
1 2 3 4 5 6
| #重启 docker-compose restart #终止 docker-compose stop #启动 docker-compose start
|
访问harbor的web界面172.16.1.12

创建项目

创建用户

创建仓库

Docker节点
修改配置文件
1 2 3
| vi /usr/lib/systemd/system/docker.service #在ExecStart最后添加: --insecure-registry 172.16.1.12
|
重启docker
1 2
| systemctl daemon-reload systemctl restart docker
|
下载镜像
查看镜像
远程连接
1
| docker login -u admin -p Harbor12345 172.16.1.12
|
镜像打标签
1
| docker tag hello-world:latest 172.16.1.12/test/hello-world:latest
|
上传镜像
1
| docker push 172.16.1.12/test/hello-world
|
Harbor节点


创建规则
主要用于harbor集群中镜像同步




Docker节点
删除原来的镜像
1
| docker image rm 172.16.1.12/test/hello-world
|
下载镜像
1
| docker pull 172.16.1.12/test/hello-world
|
查看