栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

CICD持续集成部署系列2-使用 harbor 搭建 Docker 私有仓库

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CICD持续集成部署系列2-使用 harbor 搭建 Docker 私有仓库

一、harbor 介绍

harbor ['hɑ:bə ə] (海湾) 是一个用于存储和分发Docker镜像的企业级Registry服务器。

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

官网地址:https://github.com/goharbor/harbor

除了Harbor这个私有镜像仓库之外,还有Docker官方提供的Registry。相对Registry,Harbor具有很多优势:

1. 提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。

2. 提供WEB界面,优化用户体验 只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。

3. 支持水平扩展集群 当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。

4. 良好的安全机制 企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。

实验环境:

CentOS7.9,机器需要的内存至少要 2G  。虚拟机IP为192.168.157.104

注:安装 harbor,系统根分区的可用空间需要大于 6G,否则安装时会报空间不足。 

二、安装docker 和docker compose

1、docker的安装请看这篇

《Docker实战 一文搞定docker的所有操作》

安装Linux的基础软件包,这个操作,我们都会在每台机器上操作一遍。

yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate

2、安装docker compose

注意:最好是安装1.x版本,别安装2.x,因为差距有点大。

2.1 执行如下命令,下载docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/bin/docker-compose

 其中  /usr/bin/docker-compose 是表示本地路径。若路径找不到,则说明 这个本地路径错了,修改一下就可以了。

2.2 对命令进行一个授权

chmod +x /usr/bin/docker-compose

验证:

docker-compose --version

三、 安装 harbor的详细步骤

1、下载最新的版本。

我们可以下载当前最新的稳定版本,今天下载的是2.4.0版本的离线安装版harbor-offline-installer-v2.4.0.tgz,具体的网址如下:

https://github.com/goharbor/harbor/releases/tag/v2.4.0 

2、 创建安装目录

mkdir /data/install -p
cd /data/install/

(也可以在当前目录里直接wget下载)

wget https://github.com/goharbor/harbor/releases/download/v2.4.0/harbor-offline-installer-v2.4.0.tgz

(若下载慢,可以使用github的加速器,比如https://d.serctl.com 这个网站,将下载地址贴进去,就有国内的下载地址了。)

将下载的离线包上传到该目录,并且解压:

tar zxvf  harbor-harbor-offline-installer-v2.4.0.tgz

查看目录:


3 进入harbor目录,将harbor.yml.tmpl 改名为harbor.yml

 cd harbor mv harbor.yml.tmpl harbor.yml

4 修改 harbor.yml 

[root@muxue104 harbor]# vim harbor.yml

修改几处地方:

(1)hostname:改为本机的ip,以及端口号

hostname: 192.168.157.104
port: 85

(2)将https相关代码注释掉

(3)修改数据卷

data_volume: /data/harbordata

这个目录是本机的一个目录。

修改配置文件完毕,保存退出。

5、 本机创建数据卷,这个目录就是镜像持久化。

 [root@muxue104 harbor]# mkdir /data/harbordata

6、执行安装命令

[root@muxue104 harbor]# ./install.sh

7、验证

docker-compose ps

8、访问UI

本地浏览器访问:http://192.168.157.104:85/

登录账号默认admin,密码Harbor12345

(该默认密码可以在harbor.yml里修改)

进入就说明安装成功了。

成功安装完毕!

9、补充一些常用的命令

启动Harbor的一些命令,需要在安装目录/data/install/harbor 里面执行。

docker-compose up -d 启动docker-compose stop 停止docker-compose restart 重新启动

四、UI界面的常见操作

1、创建项目

Harbor的项目分为公开和私有的。


公开项目:所有用户都可以访问,通常存放公共的镜像,默认有一个library公开项目。

私有项目:只有授权用户才可以访问,通常存放项目本身的镜像。

我们可以为微服务项目创建一个新的项目:

访问级别,勾选则为公开。

注意:一般来说,一个项目可以存放一组镜像,比如ServA、ServB和ServC的所有版本的镜像。

2、创建用户

3、给私有项目分配用户

角色的权限说明

(1) 访客: 对于指定项目拥有只读权限

(2) 开发人员: 对于指定项目拥有读写权限

(3) 维护人员: 对于指定项目拥有读写权限,创建 Webhooks

(4) 项目管理员: 除了读写权限,同时拥有用户管理/镜像扫描等管理权限

4、新用户就可以登录了。

四、镜像的上传和下载

与该机器网络联通的任何一台机器,都可以通过docker命令上传和下载镜像。找一台服务器(比如IP为192.168.157.103机器)准备操作,再操作之前需将Harbor机器的地址(192.168.157.104::85)加入到信任列表中。操作方法如下:

vi /etc/docker/daemon.json

添加一句话:

"insecure-registries": ["192.168.157.104:85"]

完成的代码如下,是json格式,注意格式:

​​​​​​​

{"registry-mirrors":["https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://28usf5ts.mirror.aliyuncs.com"],"insecure-registries": ["192.168.157.104:85"]}

wq保存完,需要重启docker服务。

​​​​​​​

[root@muxue103 ~]# systemctl daemon-reload[root@muxue103 ~]# systemctl restart docker

准备工作完成了,开始操作吧!

1、镜像上传Harbor

(1)先给镜像打标签

[root@muxue103 test-api]# docker images

我们给testapii镜像打标签,代码如下:

docker tag testapii:latest 192.168.157.104:85/saas_api/testapii:v1

结构为 docker tag 原镜像名:标签TAG  Harbor服务地址/Harbor项目名/新镜像名:新标签TAG名。

(2)登录Harbor

因为我们在Harbor里创建的项目是私有项目,则需要登录,若公开的项目,则无需登录。

docker login -u 用户名 -p 密码 Harbor服务地址

比如;

docker login -u muxue  -p Admin123  192.168.157.104:85

说明登录成功了。

(3)上传镜像

也就是将镜像推送给Harbor服务里。

docker push 192.168.157.104:85/saas_api/testapii:v1

上传成功,我们可以到Harbor的UI界面看下是否已经有该镜像了。

说明已经成功了。

2、从Harbor里下载镜像

操作之前也需要登录Harbor,然后才可以下载,下载的地址,可以通过UI界面里找,入上图红粗框那里可以复制地址。

docker pull 192.168.157.104:85/saas_api/testapii:v1

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/685740.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号