您的位置:首页 > 运维架构 > Linux

CentOS 7 部署 Harbor 仓库V2.x系列

thinkjava 2020-09-12 17:54 120 查看 https://blog.51cto.com/1376035

Harbor 仓库介绍

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

Harbor核心组件解释

Proxy:他是一个nginx的前端代理,代理Harbor的registry,UI, token等服务。
db:负责储存用户权限、审计日志、Dockerimage分组信息等数据。
UI:提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权。
jobsevice:jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log。
Adminserver:是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置。
Registry:镜像仓库,负责存储镜像文件。
Log:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。

Harbor和Registry的比较

Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。
1.提供分层传输机制,优化网络传输
Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
2.提供WEB界面,优化用户体验
只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
3.支持水平扩展集群
当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。
4.良好的安全机制
企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。
5.Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将kubernetes使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其是在多租户场景下,可以通过租户、namespace和项目相结合的方式来实现对多租户镜像资源的管理和访问控制。

安装环境

1.docker 版本17.06.0+
2.docker-compose 版本 1.18.0+
3.关闭防火墙,安全性
4.CentOS 7 系统,可联网

一、安装docker步骤

1.添加docker-ce源

cd /etc/yum.repos.d
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

注意:若无法使用wget下载,可先下载,再上传到Linux相关目录下

2.安装docker

yum -y install docker-ce

3.启动docker

systemctl start docker

4.将docker设置为开机自启

systemctl enable docker

二、安装docker-compse

1.先安装epel源

yum install -y epel-release

2.安装docker-compose

yum -y install docker-compose

三、安装harbor仓库

1.下载harbor离线安装包

下载地址: https://storage.googleapis.com/harbor-releases/ 可选择最新版本下载

wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v2.0.0.tgz

注意:若使用wget 无法下载,出现如下图报错:

解决方法:在window浏览器直接打开链接下载,在上传到Linux系统。

2.解压harbor

tar xvf harbor-offline-installer-v2.0.0.tgz -C /usr/local

3.导入docker镜像

cd /usr/local/harbor
docker image load -i harbor.v2.0.0.tar.gz

4.修改第harbor.yml配置文件

cd /usr/local/harbor
cp harbor.yml.tmpl harbor.yml #拷贝配置模板
vim harbor.yml

hostname = 192.168.156.133
再注释掉https相关端口号,其他可根据需要修改!


注意:

1.安装v2.x系列,必须先导入镜像,再拷贝harbor.yml.tmpl模板,顺序不能乱,并且直接使用harbor.yml.tmpl模板作为配置文件,只能使用harbor.yml 作为配置文件。
2.v1.x系列安装没有导入docker镜像这一步,直接修改配置文件harbor.cfg 即可,后面操作一样。

5.检测harbor

./prepare

6.安装harbor

./install.sh

7.查看服务器运行的容器

docker ps

8.访问Harbor管理系统

地址: http://192.168.154.133
默认账号:admin
密码: Harbor12345

9.相关命令

docker-compose up -d # 后台启动,如果容器不存在根据镜像自动创建
docker-compose down -v # 停止容器并删除容器
docker-compose start # 启动容器,容器不存在就无法启动,不会自动创建镜像
docker-compose stop # 停止容器

10.创建项目


上传镜像

1.下载官方tomcat镜像

docker pull tomcat

注意:如下载过慢,可以添加:

vim /etc/docker/daemon.json

{
"registry-mirrors": ["https://fskvstob.mirror.aliyuncs.com/"]
}

systemctl daemon-reload #重新加载
systemctl restart docker #重启docker

2.给tomcat镜像打标签

docker tag tomcat 192.168.154.133/maven-test01/tomcat:v1

3.登陆harbor

docker login 192.168.154.133

此时会报错如下:

解决方案:

cd /usr/lib/systemd/system
vim docker.service

--insecure-registry=192.168.154.133

systemctl daemon-reload
systemctl restart docker #重启服务

4.再次登录

docker login 192.168.154.133

5.上传镜像到仓库

docker push 192.168.154.133/maven-test01/tomcat:v1

6.查看仓库

标签: