WMware Harbor 开源 Docker 私有库搭建
WMware Harbor 开源 Docker 私有库搭建
- Harbor简介
- Harbor 的主要功能
- 基于角色的访问控制
- 基于镜像的复制策略
- 图形化用户界面
- 支持 AD/LDAP
- 镜像删除和垃圾回收
- 审计管理
- RESTful API
- 部署简单
- Harbor 架构组件
- Harbor 部署
- 环境准备
- 部署 Harbor
Harbor简介
虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。
Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。
它主要提供 Dcoker Registry 管理界面UI,可基于角色访问控制,镜像复制, AD/LDAP 集成,日志审核等功能,完全的支持中文。
Harbor 的主要功能
基于角色的访问控制
用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
基于镜像的复制策略
镜像可以在多个Registry实例中复制(可以将仓库中的镜像同步到远程的Harbor,类似于MySQL主从同步功能),尤其适合于负载均衡,高可用,混合云和多云的场景。
图形化用户界面
用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
支持 AD/LDAP
Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
镜像删除和垃圾回收
Harbor支持在Web删除镜像,回收无用的镜像,释放磁盘空间。image可以被删除并且回收image占用的空间。
审计管理
所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
RESTful API
RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
部署简单
提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。
注意
- Harbor 的所有组件都在 Docker 中部署,所以 Harbor 可使用 Docker Compose 快速部署。
- 由于 Harbor 是基于 Docker Registry V2 版本,所以 docker 版本必须 > = 1.10.0 docker-compose >= 1.6.0
Harbor 架构组件
Proxy:反向代理工具
Registry:负责存储docker镜像,处理上传/下载命令。对用户进行访问控制,它指向一个token服务,强制用户的每次docker pull/push请求都要携带一个合法的token,registry会通过公钥对token进行解密验证。
Core service:Harbor的核心功能:
- UI:图形界面
- Webhook:及时获取registry上image状态变化情况,在registry上配置 webhook,把状态变化传递给UI模块。
- Token服务:复杂根据用户权限给每个docker push/p/ull命令签发token。Docker客户端向registry服务发起的请求,如果不包含token,会被重定向到这里,获得token后再重新向registry进行请求。
- Database:提供数据库服务,存储用户权限,审计日志,docker image分组信息等数据
Log collector:为了帮助监控harbor运行,复责收集其他组件的log,供日后进行分析
Harbor 部署
环境准备
- docker-18.06.1-ce
- docker-compose-1.29.2
- harbor-v2.3.3:https://github.com/docker/compose/releases
部署 Harbor
前提是部署好了docker-ce、docker-compose
将安装包解压缩
tar zxvf harbor-offline-installer-v1.2.2.tgz
创建data、log目录
cd harbor mkdir data mkdir log
拷贝yml配置文件(harbor 2.x没有harbor.cfg文件)
cp harbor.yml.tmpl harbor.yml
修改配置文件
# 修改hostname hostname: xx.xx.xx.xx# 修改端口 http:port: 5000# 屏蔽https #https:#port: 443#certificate: /your/certificate/path#private_key: /your/private/key/path# 修改password(可选) harbor_admin_password: 123456# 修改数据卷目录 data_volume: /xxx/harbor/data/# 修改日志目录 log:...local:....location: /data/docker/harbor/harbor/log
屏蔽https,原因是没有设定https将报下面的错误
赋权
cd .. chmod 755 harbor -R
修改docker的daemon.json
vim /etc/docker/daemon.json# 添加 {"insecure-registries": ["xx.xx.xx.xx:5000"] }
保存后执行:
# 重新加载 systemctl daemon-reload重启docker systemctl restart docker
进行安装
cd harbor# 初始化服务配置(可以不执行,安装时会执行该步骤) ./prepare# 安装 ./install.sh
执行成功后,如下所示:
访问harbor web界面
url:http://xx.xx.xx.xx:5000
账号、密码:admin、123456
登录后进入主界面
WMware Harbor 开源 Docker 私有库搭建相关推荐
- 部署docker-consul群集,Harbor构建Docker私有仓库
文章目录 部署docker-consul群集,Harbor构建Docker私有仓库 了解Harvor 案例概述 Docker consul服务了解 部署Harbor服务过程 不是本地上传镜像操作 在用 ...
- 使用Harbor构建docker私有仓库
目录 一.概述 1.什么是Harbor 2.Harbor的优势 3.Docker私有仓库架构 4.Harbor 配置文件以及相关参数 (1)所需参数 (2)可选参数 二.使用Harbor构建docke ...
- Docker 私有仓库部署和管理 | Harbor 概述 - 核心组件 - 架构拓扑 | Harbor 构建 Docker 私有仓库实战(理论+实操,超详细!)
文章目录 一.Docker Harbor 概述 1.Harbor 简介 2.Harbor 的优势 二.Harbor 的核心组件 1.Proxy 2.Registry 3.Core services 4 ...
- 华为云ECS-CentOS8.2部署(Harbor)Docker私有镜像仓库
华为云ECS-CentOS8.2部署(Harbor)Docker私有镜像仓库 1.背景 2.环境说明 3.在CentOs中安装所需要的软件包 4.部署Harbor 4.1.安装docker-compo ...
- Harbor可视化docker私有仓库
Harbor可视化docker私有仓库 一.Harbor简介 二.Harbor的优势 三.Harbor的结构组件 四.docker私有仓库架构拓扑图 五.部署Harbor私有仓库 六.Harbor维护 ...
- CocoaPods私有库搭建的记录
前言 随着项目的业务增加以及马甲包进度的跟进,一些重复的独立业务以私有库的方式引入到项目中对于项目进度的开发就显得越发的迫切了,本文主要记录自己搭建私有库时的整个流程,以防后面再次搭建时忘记,方便自己 ...
- 【程序员基础篇】开源中国私有库代码更新
开源中国私有库代码更新 环境 expect bash 步骤 在开源中国新建私有库 脚本执行代码库更新 在本地web项目目录下添加远程库 在本地web目录下/Appliactions/XAMPP/htd ...
- iOS-本地私有库搭建以及远程库制作
spec简介 查看本地pod仓库 ~/.cocoapods/repos Spec文件:描述框架信息 pod setup: 将远程仓库的.spec文件拉取到本地 pod install: 先从本地找到. ...
- centons7安装docker私有库harbor
1.安装docker-compose 1.1.下载需要的版本(1.28.6) curl -L "https://github.com/docker/compose/releases/down ...
最新文章
- golang mysql多表查询_MySQL多表查询
- Zabbix poller processes more than 75% busy
- 源码分析 vue-cli 中安装依赖
- python下载安装教程3.8.1-Linux安装Python 3.8.1
- visual studio visual studio 2005 快捷键大全
- Linux中目录结构
- XcodeGhost风波过后,苹果如何防范风险?
- wxWidgets:使用事件
- hdu 3068 最长回文【manacher】(模板题)
- 大话数据结构15 : 线索二叉树
- SqliteHelper整理
- 18_python基础—面向对象-多态
- 鸿蒙系统下滑线怎么设置,微信下划线昵称教程来了,快来试试!
- laravel连接mysql8_php – 如何使用laravel运行MySql 8?
- java 不安全操作_Java新手求助:怎么会出现使用了未经检查或不安全的操作。
- spark 添加依赖_单机用python写spark处理20G的数据
- 英语教学计划软件测试,八年级下册英语教学计划三篇
- Jenkins RestAPI调用出现Error 403 No valid crumb was included in the request [亲测有用]
- 请你讲讲wait方法的底层原理
- 从零开始的MySQL教程——上
热门文章
- 2022-3-1 effective C++中关于 typename 的解释,解决了我好久的困惑,无知还是看书少的缘故
- Trac 经验谈之(1)杂谈篇
- 分析Android布局的工具--LayoutInspector
- 什么软件可以把几段视频拼在一起?99%的人还不知道这几款软件最好用
- SQL Server 2012还原数据库时找不到.bak
- 下载docx变成jsp_IE下载docx扩展名的文件时,会自动将扩展名变为zip。
- 网上阅卷软件测试初学者,如何对网上阅卷系统的进行比较测试
- Ubuntu18.04启动memtest86
- 360wifi 2代 linux驱动安装 ubuntu 14.04
- 微信小程序 -- 自定义组件component并引入。