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更多的操控,使得与其他管理软件集成变得更容易
●部署简单:提供在线和离线两种安装工具

upload successful

组件 说明 实现
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

1
sh harbor.sh

harbor操作

1
2
3
4
5
6
#重启
docker-compose restart
#终止
docker-compose stop
#启动
docker-compose start

访问harbor的web界面172.16.1.12

upload successful

创建项目

upload successful

创建用户

upload successful

创建仓库

upload successful

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 pull hello-world

查看镜像

1
docker images

远程连接

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节点

upload successful

upload successful

创建规则

主要用于harbor集群中镜像同步

upload successful

upload successful

upload successful

upload successful

Docker节点

删除原来的镜像

1
docker image rm 172.16.1.12/test/hello-world

下载镜像

1
docker pull 172.16.1.12/test/hello-world

查看

1
docker images