Centos7安装Docker镜像仓库Harbor1.5.3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7安装Docker镜像仓库Harbor1.5.3相关的知识,希望对你有一定的参考价值。

Harbor 详细介绍

技术分享图片

1、容器应用的开发和运行离不开可靠的镜像管理。从安全和效率等方面考虑,部署在私有环境内的 Registry 是非常必要的。

2、Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能,欢迎使用和反馈意见。

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

1)基于角色的访问控制

用户与 Docker 镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

2)镜像复制

镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。

3)图形化用户界面

用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。

4)AD/LDAP 支持

Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。

5)审计管理

所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

6)国际化

已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。

7)RESTful API

RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。

8)部署简单

提供在线和离线两种安装工具, 也可以安装到 vSphere 平台(OVA 方式)虚拟设备

Harbor 架构介绍

Harbor在架构上主要由五个组件构成:

1、Proxy:

Harbor的registry, UI, token等服务,通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务。

2、Registry:

负责储存Docker镜像,并处理docker push/pull 命令。由于我们要对用户进行访问控制,即不同用户对Docker image有不同的读写权限,Registry会指向一个token服务,强制用户的每次docker pull/push请求都要携带一个合法的token, Registry会通过公钥对token 进行解密验证。

3、Core services:

这是Harbor的核心功能,主要提供以下服务:

1)UI:提供图形化界面,帮助用户管理registry上的镜像(image), 并对用户进行授权。

2)webhook:为了及时获取registry 上image状态变化的情况, 在Registry上配置webhook,把状态变化传递给UI模块。

3)token 服务:负责根据用户权限给每个docker push/pull命令签发token. Docker 客户端向Regi?stry服务发起的请求,如果不包含token,会被重定向到这里,获得token后再重新向Registry进行请求。

4、Database:

为core services提供数据库服务,负责储存用户权限、审计日志、Docker image分组信息等数据。

5、Log collector:

为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。
各个组件之间的关系如下图所示:
技术分享图片

实验环境:

系统版本:centos7x3.10.0-514.el7.x86_64

Docker版本:1.13.1(yum安装)

harbor版本:harbor-offline-installer-v1.5.3.tgz(离线版)

注:由于Harbor是基于Docker Registry V2版本,所以就要求Docker版本不小于1.10.0,Docker-compose版本不小于1.6.0。

关闭防火墙并禁止开机自启

systemctl stop firewalld.service
systemctl disable firewalld

关闭selinux

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/sysconfig/selinux
重启 reboot

安装harbor

1、安装harbor依赖环境

1)安装docker

yum -y install docker

2)安装docker-compose

yum -y install docker-compose
技术分享图片

2、下载离线安装包harbor-offline-installer-v1.5.3.tgz

1)使用下载命令wget或者aria2c下载harbor

wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.3.tgz

2)解压harbor到本地

tar zxf harbor-offline-installer-v1.5.3.tgz
技术分享图片

3)将解压目录移动到根下

mv harbor /
技术分享图片
注:这一步操作是为了方便管理和防止误删除(可做可不做)!

3、添加CA证书

注:如果需要搭建基于https的harbor需要添加ca证书,如果搭建的是基于http可以跳过该步骤。

4、编辑harbor配置文件

1)编辑harbor.cfg文件

vi /harbor/harbor.cfg

#hostname设置访问地址。可以使用ip、域名、主机名,不可以设置为127.0.0.1或localhost。(如果部署的是备份库,填写ip而不是域名,否则会导致仓库管理连接失败,host无法识别原因不明)
hostname = bakreg.cn

#访问协议。默认是http,如果搭建https的仓库就改为https。
ui_url_protocol = https

#可选的https证书配置地址
ssl_cert = /root/cert/bakreg.cn.crt
ssl_cert_key = /root/cert/bakreg.cn.key

#用于在复制策略中加密或解密远程注册表的密码的密钥路径。secretkey_path不需要修改。如果必须修改它,你需要在/root/harbor/docker-compose.yml中手动调整路径,因为它们是硬编码。
secretkey_path = /data

#邮件设置,发送重置密码邮件时使用
#email_identity作为用户名
email_identity =
email_server = 邮箱的smtp服务器域名
email_server_port = 25
email_username =
email_password =
email_from =
email_ssl = false
email_insecure = false

#管理员admin的登录密码。默认是Harbor12345
harbor_admin_password = Harbor12345

#认证方式。默认是db_auth,支持多种认证方式,如数据库认证(db_auth)、LADP(ldap_auth)。
auth_mode = db_auth

#LDAP认证时配置项(这项可以登录后配置也可以)。
ldap_url = # LDAP URL
ldap_searchdn = # LDAP 搜索DN
ldap_search_pwd = # LDAP 搜索DN的密码
ldap_basedn = # LDAP 基础DN
ldap_filter = # LDAP 过滤器
ldap_uid = # LDAP 用户uid的属性
ldap_scope = 2
ldap_timeout = 5

#是否开启注册。on开启,off关闭。
self_registration = off

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

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

技术分享图片
注:暂时先更改这一行即可启动,其他功能按照需求更改!

5、启动harbor服务

1)进入harbor解压目录

cd /harbor/
技术分享图片

2)启动harbor服务

./install.sh
技术分享图片
技术分享图片
技术分享图片

3)harbor的启动和关闭方式

//关闭harbor服务(先进入harbor目录)

docker-compose stop
技术分享图片

//开启harbor服务(先进入harbor目录)

docker-compose up -d
技术分享图片

6、验证harbor服务是否正常运行

1)访问地址:http://192.168.150.199
技术分享图片

2)使用默认用户密码登陆
技术分享图片
注:默认的用户名admin,密码Harbor12345。

7、基于http协议的harbor上传下载镜像

1)docker登陆harbor

docker login 192.168.150.199
技术分享图片

2)为镜像打标记

docker tag 原镜像名 192.168.150.199/项目名/打标记的镜像名
技术分享图片
注:如果是普通用户推送镜像,切记需要普通用户先自己创建项目,不然上传给默认的library项目没有权限,只有admin用户有推送library项目的权利。

3)推送镜像到harbor仓库

docker push 192.168.150.199/项目名/打标记的镜像名
技术分享图片
注:如果是普通用户推送镜像,那么以上的library项目名换成自己的项目名即可!

4)拉取镜像

//删除打标记的镜像

docker rmi -f 192.168.150.199/library/tomcat:v1
技术分享图片

//拉取仓库的tomcat镜像

docker pull 镜像的完整路径
技术分享图片
注:以上截图可能有的童鞋会问,不需要docker login IP登陆吗?首先我可以告诉你:可以用,也可以不用。其次如果你要是觉得需要用户密码下载,那么可以在harbor的项目上设置不公开即可实现用户密码下载;也可能有童鞋会说不用不够安全啥的,其实你完全不必担心,因为需要完整路径才能下载,而且这个镜像仓库是在内网,说白知道的都是公司的同事。如果不知道怎么填写完整路径,下载镜像的,那么就登录上网页harbor,然后点击你要下载的那个镜像后边pull命令提醒,例如:
技术分享图片

5)docker退出harbor登陆

docker logout harbor的IP
技术分享图片

8、基于https协议的harbor上传下载镜像

注:由于我使用的是http协议,所以这步就没有测试!如果想使用https协议
推荐文章https://www.cnblogs.com/straycats/p/8850693.html

以上是关于Centos7安装Docker镜像仓库Harbor1.5.3的主要内容,如果未能解决你的问题,请参考以下文章

Centos7搭建Harbor私有仓库

基于 Harbor 搭建 Docker 私有镜像仓库

docker以https方式自建私有镜像仓库harbor

Harbor镜像仓库搭建

Docker镜像仓库Harbor安装与配置

docker镜像仓库