Harbor安装与使用
Harbor(英文单词:港湾)简介:
主要功能和特点:
- 基于角色的访问控制(RBAC):可以为不同的用户和用户组分配不同的权限,增强了安全性和管理的灵活性
- 镜像复制:支持在不同的harbor实例之间复制镜像,方便在多个数据中心或环境中分发镜像
- 图形化用户界面(UI):提供了直观地Web界面,便于管理镜像仓库、项目、用户等
- 审计日志:记录了对镜像仓库的各种操作,有助于追踪和审查活动
- 垃圾回收:可以清理不再使用的镜像,节省存储空间
学习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/
标签:Web,compose,harbor,私有,镜像,docker,Harbor From: https://blog.csdn.net/2301_82330629/article/details/142311969