Harbor安装与使用

Harbor(英文单词:港湾)简介:

主要功能和特点:

  1. 基于角色的访问控制(RBAC):可以为不同的用户和用户组分配不同的权限,增强了安全性和管理的灵活性
  2. 镜像复制:支持在不同的harbor实例之间复制镜像,方便在多个数据中心或环境中分发镜像
  3. 图形化用户界面(UI):提供了直观地Web界面,便于管理镜像仓库、项目、用户等
  4. 审计日志:记录了对镜像仓库的各种操作,有助于追踪和审查活动
  5. 垃圾回收:可以清理不再使用的镜像,节省存储空间

学习Harbor的应用场景

(1)像Docker Hub、阿里云这样的公共镜像仓库有的时候用起来不太方便,Docker Hub网速太慢,阿里云需要花钱买主机

(2)涉及内部资源的保密性,有的机构不太可能将镜像提供给公网,因此需要创建一个基于内部项目镜像,构造本地私人仓库供给团队使用

Registry与harbor仓库的优势:

Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Registry来说,它具有更多的优势:

1.提供分层传输机制

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

2.提供Web界面,优化用户体验

只用镜像的名字来进行上传下载显然很不方便,需要一个用户界面可以支持登录、搜索功能,包括区分公有、私有镜像

3.支持水平扩展集群

当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解

4.良好的安全机制

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

5.Harbor提供基于角色的访问控制机制,并通过项目对镜像进行组织和访问权限的控制

5.1安装docker-compose

采用离线下载https://github.com/docker/compose/release下的docker-compose-linux-x86_64

将其执行文件改名放到/usr/local/bin下

通过检查版本来验证docker-compose是否正确安装

5.2安装harbor

下载版本压缩包

https://github.com/goharbor/harbor/releases/download/v2.9.4/harbor-offline-installer-v2.9.4.tg

解压安装包

更改文件名

Harbor.yml文件配置内容

测试暂时使用本机ip

加载重新配置后重启Docker

启动成功后进入harbor安装目录执行启动命令

执行./install.sh

5.3错误解析

(1)关闭防火墙:systemctl stop firewalld

                 Setenforce 0

(2)修改harbor参数文件

将https段的内容全部注释,这里不使用https访问

执行./install.sh出现如下错误

(3)解决容器名重复现象

利用docker rm 容器id 删除容器

再次执行./install.sh命令

看到successfully证明执行成功

查看harbor启动镜像

5.4访问私有仓库

用户名admin

密码Harbor12345

根据配置文件/harbor/harbor.yml内容得出:

默认项目library,点击右上角的推送命令,可以看见各种方式的推送命令

Docker推送命令

5.5使用docker上传镜像到Harbor

(1)使用docker进行登录和推送

在推送镜像之前要做一次登录

(2)下载镜像进行测试

(3)将镜像打标签

(4)上传镜像到Harbor

(5)在Web-Harbor界面查看

5.6客户端上传镜像

以上操作都是在Harbor服务器本地操作。如果其他客户端上传镜像到Harbor,就会报错

原因:docker registry交互默认使用的是HTTPS,但在搭建私有镜像默认使用的是HTTP.

解决办法:

在docker Server启动的时候,增加启动参数,默认使用HTTP访问

再次登录Harbor

下载镜像进行测试

将镜像打标签

上传镜像:

查看harbor的Web界面,项目里面有两个镜像

5.7Harbor日常操作管理

(1)通过Harbor Web创建项目

单击新建项目,填写项目名称。本案例项目级别为“公有”,则所有对此项目下的镜像拥有读权限,命令行中不需要执行“docker login”即可下载镜像

(2)创建Harbor用户

创建用户并分配权限

(3)在客户端上使用普通账号操作镜像

# docker pull mysql5.7

(4)删除上述打标签的本地镜像

(5)先退出当前用户,然后使用上述创建的用户yanweijie-user01登录

(6)下载服务器192.168.104.117/yanweijie/mysql:v1的镜像

(7)查看日志

Web界面日志,操作日志按时间顺序记录用户相关操作

5.8维护管理Harbor

(1)停止/启动/重启Harbor

# docker-compose stop |start|restart

(2)修改harbor.yml配置文件

若需更改Harbor的配置文件时,先停止现有的Harbor实例并更新harbour.yml,然后运行prepare脚本来填充配置,最后重新创建并启动harbour的实例

(3)移除harbor服务容器同时保留镜像数据/数据库

# docker-compose up -d

(4)如需重新部署,需要移除harbor服务容器全部数据

# rm -rf /data/database/

# rm -rf/data/registry/

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐