Harbor管理镜像
安装Harbor管理镜像服务
阅读目录
Harbor是什么?
还记得Docker Registry么?它是Docker官方提供的镜像仓库,简单易用,一键就可以部署、使用。
虽然看起来不错,但是Registry有些问题需要解决:
- 没有图形界面
- 没有用户权限控制
- 看不到镜像操作记录
- 仓库内镜像管理难度大,容易造成空间浪费
卖了个关子,基于Registry现有的问题,VMWare公司开发了Harbor,用来完善Registry的功能,
使用Harbor,你可以:
- 按项目管理镜像
- 明确记录用户对镜像仓库项目的操作,包含create、push 、delete,甚至pull!
- 有图形界面
- 有用户管理,可以针对项目进行细粒度的权限控制
- 仓库内的镜像可以在图形界面删除与复制,垃圾清理!
- 可以同步已有镜像仓库的镜像
- 有仓库管理 暂时没太关注这是干嘛用的
- API控制中心!
放几张效果图:





搭建步骤
- 安装Docker、Docker-compose
- 下载Harbor离线包
- 配置harbor.yml
- 运行 ./install.sh
安装Docker、Docker-compose
安装docker
配置非root用户免sudo使用docker,立即生效
sudo usermod -aG docker 要使用的用户名 && newgrp docker
安装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 #赋执行权限
下载Harbor离线包
在Github上的仓库地址https://github.com/goharbor/harbor/releases
这里我们下载最新的release v1.8.2版本

[v1.8.2离线版下载链接]https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.2.tgz
离线版本相对于online版本,区别是它们都是使用的Docker镜像与Docker-compose工具,不同的是
- 离线包中包含了所有需要的镜像导出包
- 在线包中只包含简单的配置文件
离线包占内存比较大,差不多五百多兆,因为我们公司一般是内网的线上环境,这里就直接下载离线包了,您可以选择自己喜欢或需要的版本,以下使用离线包演示
可以直接用命令下载
wget -P /usr/local/src https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.2.tgz

这里直接下载到了/usr/local/src中
配置harbor.yml
先进入刚才下载到的目录,解压离线包到/usr/local/harbor下
cd /usr/local/src
tar zxf harbor-offline-installer-v1.8.2.tgz -C /usr/local/
cd /usr/local/harbor/

配置harbor.yml vim harbor.yml, 这里包含必要参数与可选参数,这里只记录下必要参数
必要参数
- hostname:访问的Harbor服务的IP或域名(UI与命令行操作同样生效),不要使用
localhost、127.0.0.1或0.0.0.0 - data_volume: Harbor中的数据挂载对应宿主机的位置,如/home/harbor/data
- harbor_admin_password: admin管理员密码,默认管理员账号/密码为admin/Harbor12345
- database: Harbor内部的数据库
- password: 数据库密码
- max_idle_conns: 连接池最大保持空闲数
- max_open_conns: 同时最大开启的连接数
- jobservice:作业相关的服务
- max_job_workers: 最大作业worker数
- log: 日志相关
- level:日志输出等级
- local:本地日志保留相关
- rotate_count: 日志文件在移除之前的旋转次数 Log files are rotated rotate_count times before being removed. If count is 0, old versions are removed rather than rotated.
- rotate_size: 日志保持大小,超出部分会删除旧日志
- location: 存储日志的路径
- external_endpoint:开启此选项,将会把日志转发到syslog服务中
- protocol:转发协议,默认TCP
- host: syslog服务的ip
- port: syslog服务监听的端口号
必要参数基本就这些,如果想配置更仔细些,请参考Github
运行 ./install.sh
cd /usr/local/harbor
./install.sh #运行安装脚本


查看下用到哪些容器 docker-compose ps

到此安装完成
测试与使用Harbor
访问hostname处配置的IP

登录即可访问了,这里使用就不多说了,点点就了解个七七八八了
docker login 与 push 测试
接下来测试下,使用docker push到这个仓库中
推荐再准备一台虚拟机,如果没有的话,可以先在/usr/local/harbor目录下执行
docker-compose down -v关闭harbor各容器
推送镜像到非https的仓库时,都需要设置非安全的仓库,vim /etc/docker/daemon.json,如图大家参考下

主要是
{
"insecure-registries": ["192.168.87.139:80"]
}
我这里之前配置了另一个镜像仓库,这里大家看看就好
需要注意的是:刚才配置的hostname后需要写明80端口,如果是域名则不需要
改好后,重启docker服务systemctl restart docker
登录仓库
docker login 192.168.87.139:80
初次登录需要使用用户名与密码,这个是在Harbor用户管理中配置的,admin用户拥有最高权限

这里用本地java:latest镜像举例
#重新tag方能推送
docker tag java:latest 192.168.87.139:80/library/java:latest
#推送镜像
docker push 192.168.87.139:80/library/java:latest
去Harbor的UI界面 -> 项目 -> library

我们点开library/java,可以查看具体的tags

删除本地刚才tag的镜像,我们pull下来试试
#删除本地镜像
docker rmi 192.168.87.139:80/library/java:latest
#pull Harbor镜像仓库中的镜像
docker pull 192.168.87.139:80/library/java:latest

一切正常,后续自我去配置下可选的配置就可以了。
关闭Harbor服务
cd /usr/local/harbor
docker-compose down -v
删除/卸载Harbor
先参考上一小节关闭Harbor服务,关闭Harbor
rm -rf /usr/local/harbor
rm -rf /usr/local/src/harbor
删除镜像这块就需要使用docker rmi了,这里就不多说了,刚才docker-compose ps时有显示用到哪些镜像
后记
本来打算暂时不更新博客的,现在工作需要去看看镜像仓库相关的内容,输出文档,这里就一口气全写出来了,先这样。
Harbor管理镜像的更多相关文章
- 安装Harbor管理镜像服务
Harbor是什么? 还记得Docker Registry么?它是Docker官方提供的镜像仓库,简单易用,一键就可以部署.使用. 虽然看起来不错,但是Registry有些问题需要解决: 没有图形界面 ...
- docker企业级镜像仓库Harbor管理
Harbor概述 Harbor是由VMWare公司开源的容器镜像仓库.事实上,Harbor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括: ...
- Harbor私有镜像仓库(上)
上图配置为工作环境 特别注意:win10现在不允许使用私有ca证书,到时登录浏览器会失败,可以选用火狐浏览器. 创建自己的CA证书 openssl req -newkey rsa:4096 -node ...
- Harbor 企业级镜像仓库搭建
Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的 企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角 ...
- harbor私有镜像仓库的搭建与使用与主从复制
harbor私有镜像仓库,私有仓库有两种,一种是harbor,一种是小型的私有仓库,harbor有两种模式,一种是主 从,一种是高可用仓库,项目需求,需要两台服务器,都有docker.ldap权限统一 ...
- 搭建Harbor私有镜像仓库--v1.5.1
搭建Harbor私有镜像仓库--v1.5.1 1.介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境 ...
- 部署Harbor私有镜像仓库
Harbor私有镜像仓库无坑搭建 目录 1. harbor介绍 2. docker-ce的安装 3. docker-compose的安装 4. Harbor私有仓库的安装 5. 客户端连接镜像仓库配置 ...
- 03: 使用docker搭建Harbor私有镜像仓库
1.1 harbor介绍 1.Harbor简介 1. Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 2. 镜像的存储harbor使用的是官方的docker regi ...
- docker部署harbor私有镜像库(3)
一.harbor介绍 在实际生产运维中,往往需要把镜像发布到几十.上百台或更多的节点上.这时单台Docker主机上镜像已无法满足,项目越来越多,镜像就越来越多,都放到一台Docker主机上是不行的,我 ...
随机推荐
- Python学习笔记之replace()
10-2 可使用方法replace()将字符串中的特定单词都替换为另一个单词. 读取你刚创建的文件learning_python.txt 中的每一行,将其中的Python 都替换为另一门语言的名称,如 ...
- kindedit,uedit 上传跨域返回
1.kindedit 跨域上传图片的时候,a.com 上传到b.com接收图片服务器,然后返回图片地址. 2.一般如果不做任何处理是获取不到返回的信息的.原因是跨域了 3.所以一般在上传成功后,在跳转 ...
- Bloom’S Taxonomy
引用:https://www.learning-theories.com/blooms-taxonomy-bloom.html Bloom's Taxonomy is a model that is ...
- mpvue 小程序开发之 数据埋点统计
mpvue 小程序开发之 数据埋点统计 在开发过程中,有数据统计的需求,需要获取小程序当前页面和来源页面的数据,以及页面的停留时间 在对小程序api进行了一番研究之后,发现获取这些数据其实并不难 当前 ...
- new的原理及实现
new的过程 // new运算的过程 /** * 1.创建一个空对象: * 2.该空对象的原型指向构造函数(链接原型):将构造函数的 prototype 赋值给对象的 __proto__属性: * 3 ...
- SAP常见查询组合
做SAP开发的,SELECT是必不可少的.新语法出了不少'新鲜'的语法,用法也是五花八门. 新语法有新语法的好处,老语法有老语法的优势. 新语法里把很多的逻辑处理,分组,排重,内表处理全都放到一些关键 ...
- 【Spring AOP】Spring AOP之如何通过注解的方式实现各种通知类型的AOP操作进阶篇(3)
一.切入点表达式的各种类型 切入点表达式的作用:限制连接点的匹配(满足时对应的aspect方法会被执行) 1)execution:用于匹配方法执行连接点.Spring AOP用户可能最经常使用exec ...
- json转dataframe格式
方法1:利用pandas自带的read_json直接解析字符串 方法2:利用json的loads和pandas的json_normalize进行解析 方法3:利用json的loads和pandas的D ...
- wordpress后台添加左侧边栏菜单如何操作
我们有时为了方便操作会把一些特定的链接添加到wordpress后台左侧菜单栏中,这个要如何实现呢?其实不会很难,使用两个WordPress内置函数就可以解决问题,分别是add_menu_page()和 ...
- KVM虚拟机嵌套虚拟化
KVM虚拟机嵌套虚拟化 背景介绍 在Arch linux的 KVM 虚拟机上启动来部署开源Iaas系统zstack时,需要开启虚拟机嵌套虚拟化. 解决 KVM 嵌套式虚拟 Nested 是一个 ...