-
harbor
2020-09-01 11:48:40harbor 文章目录harborharbor介绍harbor的功能harbor组成Docker composeHarbor部署harbor 仓库的使用 harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,由vmware开源,其通过添加一些企业...harbor
harbor介绍
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,由vmware开源,其通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控,另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等
harbor的功能
- 基于角色的访问控制:用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限
- 镜像复制:镜像可在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景
- 图形化用户界面:用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间
- AD/LDAP:Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理
- 审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理
- 国际化:已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来
- RESTful API:提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易
harbor组成
- Proxy:对应启动组件nginx。它是一个nginx反向代理,代理Notary client(镜像认证)、Docker client(镜像上传下载等)和浏览器的访问请求(Core Service)给后端的各服务
- UI(Core Service):对应启动组件harbor-ui。底层数据存储使用mysql数据库,主要提供了四个子功能:
- UI:一个web管理页面ui
- API:Harbor暴露的API服务
- Auth:用户认证服务,decode后的token中的用户信息在这里进行认证;auth后端可以接db、ldap、uaa三种认证实现
- Token服务(上图中未体现):负责根据用户在每个project中的role来为每一个docker push/pull命令issuing一个token,如果从docker client发送给registry的请求没有带token,registry会重定向请求到token服务创建token
- Registry:对应启动组件registry。负责存储镜像文件,和处理镜像的pull/push命令。Harbor对镜像进行强制的访问控制,Registry会将客户端的每个pull、push请求转发到token服务来获取有效的token
- Admin Service:对应启动组件harbor-adminserver。是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候需要加载adminserver的配置
- Job Sevice:对应启动组件harbor-jobservice。负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log
- Log Collector:对应启动组件harbor-log。日志汇总组件,通过docker的log-driver把日志汇总到一起
- DB:对应启动组件harbor-db,负责存储project、 user、 role、replication、image_scan、access等的metadata数据
Docker compose
Harbor在物理机上部署是非常难的,而为了简化Harbor的应用,Harbor官方直接把Harbor做成了在容器中运行的应用,而且这个容器在Harbor中依赖类似redis、mysql、pgsql等很多存储系统,所以它需要编排很多容器协同起来工作,因此VMWare Harbor在部署和使用时,需要借助于Docker的单机编排工具(Docker compose)来实现。
Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.
Harbor部署
环境说明:
IP 安装的应用 角色 192.168.79.128 docker-ce 客户端 192.168.79.129 docker-ce
docker-compose
harborharbor仓库 docker安装步骤请参考docker安装
//下载安装docker-compose [root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo [root@localhost ~]# yum clean all [root@localhost ~]# yum -y install docker-compose //下载harbor [root@localhost ~]# cd /usr/src/ [root@localhost src]# wget https://github.com/goharbor/harbor/releases/download/v2.0.2/harbor-offline-installer-v2.0.2.tgz [root@localhost src]# tar xf harbor-offline-installer-v2.0.2.tgz -C /usr/local/ //修改配置文件 [root@localhost src]# cd /usr/local/harbor/ [root@localhost harbor]# ls common.sh harbor.yml.tmpl LICENSE harbor.v2.0.2.tar.gz install.sh prepare [root@localhost harbor]# cp harbor.yml.tmpl harbor.yml [root@localhost harbor]# vim harbor.yml ... hostname: 192.168.79.129 //修改IP ... # https related config //将https部分的内容全部注释 #https: # https port for harbor, default is 443 # port: 443 # The path of cert and key files for nginx # certificate: /your/certificate/path # private_key: /your/private/key/path ... //执行安装脚本 [root@localhost harbor]# ./install.sh [root@localhost ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 127.0.0.1:1514 *:* LISTEN 0 128 [::]:80 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 100 [::1]:25 [::]:*
在浏览器上直接访问IP登录
harbor 仓库的使用
创建用户
新建nginx仓库并添加项目授权访问用户
配置客户端,并给镜像打标签
//授权129的IP访问,在128上配置 [root@localhost ~]# vim /etc/docker/daemon.json //添加以下内容 { "insecure-registries": ["192.168.79.129"] } [root@localhost ~]# systemctl restart docker //客户端配置 //修改标签 [root@localhost ~]# docker pull nginx [root@localhost ~]# docker tag nginx:latest 192.168.79.129/nginx/nginx:v0.1 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.79.129/nginx/nginx v0.1 4bb46517cac3 2 weeks ago 133MB nginx latest 4bb46517cac3 2 weeks ago 133MB //登录和上传 [root@localhost ~]# docker logout Removing login credentials for https://index.docker.io/v1/ [root@localhost ~]# docker login 192.168.79.129 Username: test Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded //显示Succeeded表示登录成功 //上传镜像到nginx仓库 [root@localhost ~]# docker push 192.168.79.129/nginx/nginx:v0.1 The push refers to repository [192.168.79.129/nginx/nginx] 550333325e31: Pushed 22ea89b1a816: Pushed a4d893caa5c9: Pushed 0338db614b95: Pushed d0f104dc0a1f: Pushed v0.1: digest: sha256:179412c42fe3336e7cdc253ad4a2e03d32f50e3037a860cf5edbeb1aaddb915c size: 1362
在浏览器上刷新查看
将之前的镜像删除并拉取镜像看是否与之前上传的一样
[root@localhost ~]# docker pull 192.168.79.129/nginx/nginx:v0.1 v0.1: Pulling from nginx/nginx bf5952930446: Pull complete cb9a6de05e5a: Pull complete 9513ea0afb93: Pull complete b49ea07d2e93: Pull complete a5e4a503d449: Pull complete Digest: sha256:179412c42fe3336e7cdc253ad4a2e03d32f50e3037a860cf5edbeb1aaddb915c Status: Downloaded newer image for 192.168.79.129/nginx/nginx:v0.1 192.168.79.129/nginx/nginx:v0.1 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.79.129/nginx/nginx v0.1 4bb46517cac3 2 weeks ago 133MB
使用Harbor的注意事项:
- 在客户端上传镜像时一定要记得执行docker login进行用户认证,否则无法直接push
- 在客户端使用的时候如果不是用的https则必须要在客户端的/etc/docker/daemon.json配置文件中配置insecure-registries参数
- 数据存放路径应在配置文件中配置到一个容量比较充足的共享存储中
- Harbor是使用docker-compose命令来管理的,如果需要停止Harbor也应用docker-compose stop来停止,其他参数请–help
-
Harbor
2019-12-02 01:07:07安装 wget ...tar -zxvf harbor-offline-installer-v1.9.3.tgz cd harbor #修改harbor.yml中的域名配置和端口, 避免端口冲突 ./install...安装
wget https://github.com/goharbor/harbor/releases/download/v1.9.3/harbor-offline-installer-v1.9.3.tgz tar -zxvf harbor-offline-installer-v1.9.3.tgz cd harbor #修改harbor.yml中的域名配置和端口, 避免端口冲突 ./install.sh #docker load -i ./harbor.v1.9.3.tar.gz #全量安装,暂时不用 sudo systemctl daemon-reload sudo service docker restart #如果是虚拟机需要配置/etc/hosts ,确保harbor.yml中的hostname和登陆的域名一致
管理界面使用
- 如果是虚拟机需要在Cilent机上配置hosts
- Cilent机上Browser中, hostname:port开发
- 管理员账户名密码在harbor.yml配置文件中
-
harbor搭建与使用
2019-01-09 12:47:31harbor git 地址前两天测试服务docker化并k8s布署时,出于方便,使用了docker hub。由于我们的代码是要放到镜像里的,通过运行容器,便能获取我们的全部代码,风险很大。所以我们决定进行私有化的镜像部署。
经过调研,决定使用harbor这个开源项目。
项目介绍
优点:
- 本身自代 docker 私有仓库
- 支持基于角色的权限管理
- 支持 LDAP
安装
harbor支持k8s的helm安装和本地安装,我这次先择的安装方式是本地安装。
我的运行环境是 Centos7.2。
0. 前置条件
- 需要安装
docker
并运行
yum install docker # 安装docker ... systemctl start docker # 运行docker服务
- 需要安装
docker-compose
yum install docker-compose
1. 下载安装包
直接选择编译好的包
这里有两个包
Harbor offline installer
和Harbor online installer
,两者的区别的是Harbor offline installer
里就包含的 Harbor 需要使用的镜像文件。下载成功,并解压
tar -zxvf harbor-offline-installer-v1.7.1.tgz
进入解压的目录,并
ls
harbor.v1.7.1.tar.gz
里就是 Harbor 用到的镜像2. 编辑配置文件
harbor.cfg
是这个项目的配置文件1. 修改 hostname 先项
将 hostname 改成你本机的网址或IP
hostname = A.B.C.D # 写你自己的网址或IP,公网访问要写公网IP
2. 支持Http 访问
customize_crt = false
3. 运行
- 修改完配置文件后,运行
./prepare
,它会哪所配置文件修改一文件 - 运行
./install.sh
运行成功,
docker ps
查看,可以看到服务已经起来了。
4. 常用管理命令
- 停止服务:
docker-compose stop
- 开始服务:
docker-compose start
GUIl界面使用
1. 新建项目
新建一个项目,命名为
ainirobot
,并设置访问级别为公开。
这里的项目就是一私有化的Docker镜像仓库。
上传镜像
1. 修改Docker配置
docker 默认是按 https 请求的,由于我搭的私有库是 http 的,所以需要修改 docker 配置,将信任的库的地址写上
修改文件/etc/docker/daemon.json
{ "insecure-registries": [ "A.B.C.D" ] }
然后重启docker
systemctl restart docker
2. 制作镜像
将 mongo 制作成一个私有镜像, mongo 为我之前从 docker hub 上拉取的镜像。
docker tag mongo A.B.C.D/ainirobot/nebulae_mongo:0.0.1
3. 上传
1. 先登陆私有库
docker login A.B.C.D
2. PUSH
docker push A.B.C.D/ainirobot/nebulae_mongo:0.0.1
3. 结果
从后台已经能看到这个镜像了
推荐
完成了私有库的搭建后,可以再安装一个k8s集群后台管理系统(wayne系统介绍)。
-
Harbor Community Meeting The Harbor Project holds bi-weekly community calls in two different timezones. To join the community calls or to watch previous meeting notes and recordings, ...
-
Harbor:Harbor 安装
2019-06-12 20:05:46目录导航CentOS7:harbor 安装正文harbor 安装 CentOS7:harbor 安装 简介: 官方文档: https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md 本文参考: 环境: CentOS Linux release ...Harbor:Harbor 安装
简介:
官方文档: https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
本文参考:
环境:
-
CentOS Linux release 7.6.1810 (Core)
-
Docker version 18.09.3, build 774a1f4
创建时间:2019/6/5 9:37:01 创建人:于子源 修改记录:修改人+修改时间+修改说明(多人修改时,增加多条) 当前版本:version 1.0.0
安装 docker-compose
-
安装 docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
授予执行权限:
sudo chmod +x /usr/local/bin/docker-compose
-
测试安装
$ docker-compose --version docker-compose version 1.24.0, build 1110ad01
安装 harbor
-
先下载到 Windows host,再转移到 CentOS7 /opt/ 下
-
离线安装
tar xvf harbor-offline-installer-<version>.tgz
-
进入 harbor 文件夹,编辑
harbor.yml
将
hostname:
修改为hostname: 10.9.40.123
。10.9.40.123 为我试验机的 IP。 -
执行 install.sh 脚本
./install.sh
-
访问 10.9.40.123:80
-
登录信息在 harbor.yml 文件中。
默认为
root
/Harbor123456
-
-
harbor API
2017-07-07 19:01:36非常全面的harbor API -
harbor一键安装(harbor-v2.0.2软件包和harbor-v2.0.2安装脚本)
2020-09-03 14:52:30软件环境:centos7.5 需要提前安装文件编辑工具 vim yum install -y vim 一键执行harbor-install.sh即可 其中有个环节需要修改配置文件 只需按照以下安装脚本harbor-install.sh文件中3.4步骤进行修改即可 -
Harbor升级
2020-11-21 17:04:41docker run -it --rm -v /home/harbor185/harbor/harbor.yml:/harbor-migration/harbor-cfg/harbor.yml -v /home/harbor194/harbor/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml goharbor/harbor-migra -
harbor的搭建
2019-03-27 22:35:46harbor的搭建 -
harbor 升级
2020-02-21 10:02:52harbor 升级方法 # 1. 进入harbor文件夹,停止harbor 服务 cd harbor docker-compose down # 2.备份harbor, 防止出错,可以回滚 mv harbor /backup_dir/harbor # 3.备份数据,默认在 /data/database # 建议最好... -
Harbor安装
2019-08-01 15:51:07Harbor安装 Harbor是一个开源的镜像仓库. harbor官网 环境 软件 版本 下载地址 备注 系统 Centos 7.4 - - - docker 18.09.0-3 传送门 - - docker-componse 1.24.1 ... -
harbor离线安装包
2020-11-19 15:41:18harbor-offline-installer-v1.9.4,大家看好版本,本文件较大 -
重启Harbor
2020-07-22 13:32:27harbor 通过docker-compose.yml配置文件的形式管理 停止harbor,停止容器 docker-compose stop 启动容器 docker-compose up -d -
Harbor介绍
2020-04-28 15:43:43Harbor Harbor是什么? Harbor是VMware公司开源的企业级DockerRegistry项目,其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。 它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制... -
harbor仓库
2020-07-04 20:39:13安装docker: [root@server7 Downloads]# yum install -y docker-ce container-selinux-2.77-1.el7.noarch.rpm [root@server7 Downloads]# tar zxf harbor-offline-...[root@server7 harbor]# vim harbor.yml .
-
RFC 2326-实时流协议(RTSP).pdf
-
转行做IT-第7章 数组
-
订阅消息发送47003
-
VorinoiClass源码.zip
-
网页Banner导航模板
-
不好的女人只能消耗你,好的女人不仅可以给你一个家和孩子
-
微信小程序onLoad与onShow的区别
-
用单链表来实现栈结构
-
基于51单片机简易计算器
-
【数据分析-随到随学】数据可视化
-
mupdf-1.13.0-source.tar.gz
-
wubi16046r333.exe
-
web前端开发规范
-
【数据分析-随到随学】Hive详解
-
Hisi3516二维码识别(一):交叉编译工具库
-
Linux与数据库基础
-
转行做IT-第5章 流程控制语句
-
模拟电路知识:晶体管、三极管
-
小码渣数学公式.pdf
-
C/C++编程学习 - 第5周 ② 向左看齐