harbor的搭建和使用

服务概述

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等

特性

  • 基于角色的访问控制:用户与docker镜像仓库通过“项目”进行组织管理,一个用户可以对个多镜像仓库在同一命名空间(project)里有不同的权限
  • 镜像复制:镜像可以在多个registry实例中复制(同步),尤其适合负载均衡,高可用,混合云和多云的场景
  • 图形化用户界面:用户可以浏览器来浏览,检索当前docker镜像仓库,管理项目和命名空间
  • AD/LDAP支持:harbor可以集成企业内部已有的AD/LDAP,用户鉴权认证管理
  • 审计管理:所有针对镜像仓库的操作都可以被记录追溯,用户审计管理
  • 国际化:已拥有英文、中文、德文、日文和俄文的本地化版本
  • RESTful API: restful api提供给管理员对于harbor更多的操控,是的与其他管理软件集成变得更容易
  • 部署简单:提供在线和离线两种安装工具

组件和运行原理图

在这里插入图片描述

组件 说明 实现
Proxy 用于转发用户的请求到registry/ui/token service的反向代理 nginx:使用nginx官方镜像进行配置
Registry 镜像的push/pull命令实施功能 registry:使用registry官方镜像
Database 保存项目/用户/角色/复制策略等信息到数据库中 harbor-db:Mariadb的官方镜像用于保存harbor的数据库信息
Core Service: UI/token/webhook 用户进行镜像操作的界面实现,通过webhook的机制保证镜像状态的变化harbor能够即使了解以便进行日志更新等操作,而项目用户角色则通过token的进行镜像的push/pull等操作 harbor-ui等
Job services 镜像复制,可以在harbor实例之间进行镜像的复制或者同步等操作 harbor-jobservice
Log collector 负责收集各个镜像的日志信息进行统一管理 harbor-log:缺省安装下日志的保存场所为/var/log/harbor

安装和运行

docker安装

#安装一些必要的系统工具
yum -y install yum-utils device-mapper-persistent-data lvm2

#添加docker镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装docker-ce
yum -y list docker-ce.x86_64 --showduplicates | grep stable | sort -r
yum -y install docker-ce-18.03.1.ce-1.el7.centos

#开启docker服务
systemctl start docker

#查看docker版本
docker version

docker-composer安装

#下载可执行命令到系统path

curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

#添加可执行权限
chmod +x /usr/local/bin/docker-compose

#查看版本号
docker-compose version

harbor离线模式

#解压
tar -zxf harbor-offline-installer-v1.6.2.tgz -C /usr/local
#修改配置
vim /usr/local/harbor/harbor.cfg
hostname = 192.168.43.210
#执行安装
cd /usr/local/harbor
./install.sh

默认是80端口,如果端口占用,我们可以去修改docker-compose.yml文件中,对应服务的端口映射。

在这里插入图片描述

配置文件

## Configuration file of Harbor

# hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
hostname = 10.236.63.76

# 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
ui_url_protocol = http

# mysql数据库root用户默认密码root123,实际使用时修改下
db_password = root123

max_job_workers = 3 
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA

# 邮件设置,发送重置密码邮件时使用
email_identity = 
email_server = smtp.mydomain.com
email_server_port = 25
email_username = [email protected]
email_password = abc
email_from = admin <[email protected]>
email_ssl = false

# 启动Harbor后,管理员UI登录的密码,默认是Harbor12345
harbor_admin_password = Harbor12345

# 认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
auth_mode = db_auth

# LDAP认证时配置项
ldap_url = ldaps://ldap.mydomain.com
ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
ldap_search_pwd = password
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_filter = (objectClass=person)
ldap_uid = uid 
ldap_scope = 3 
ldap_timeout = 5

# 是否开启自注册
self_registration = on

# Token有效时间,默认30分钟
token_expiration = 30

# 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
project_creation_restriction = everyone

verify_remote_cert = on

部署完毕之后,可以访问本机ip进行登陆,账号是admin,密码跟配置文件中的相符,如果没有修改,默认是Harbor12345
在这里插入图片描述

查看和监控

在这里插入图片描述
启动harbor
docker-compose start
停止harbor
docker-compose stop
重启harbor
docker-compose restart

harbor使用

启动harbor

[root@localhost harbor]# docker-compose start

docker client的设置

[root@localhost ~]# vim /usr/lib/systemd/system/docker.service 
      ExecStart=/usr/bin/dockerd --insecure-registry 192.168.43.104
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

客户端登陆

[root@localhost ~]# docker login -u admin -p Harbor12345 192.168.43.104
Login Succeeded

客户端推送

将本地的nginx镜像推送到harbor仓库
#登陆harbor仓库
docker login ······
#给镜像打标签
[root@localhost ~]# docker tag centos 192.168.43.104/bdqn/centos:latest
#harbor端web页面自己先创建一个库,明字是bdqn,如图
在这里插入图片描述
在这里插入图片描述

#push到harbor仓库
docker push 192.168.43.104/bdqn/centos:latest

演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了76 篇原创文章 · 获赞 60 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43557605/article/details/104416588