Harbor 私有镜像仓库详细记录

harbor官网:官网

github地址:项目地址

文档:v1.10-release

介绍
Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务。
Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率。
Harbor核心组件
  1. Proxy:他是一个nginx的前端代理,代理

Harbor的registry,UI, token等服务。

  • db:负责储存用户权限、审计日志、Dockerimage分组信息等数据。

  • UI:提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权。

  • jobsevice:jobsevice是负责镜像复制工作的,他和registry通信,从一个registry
    pull镜像然后push到另一个registry,并记录job_log。

  • Adminserver:是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置。

  • Registry:镜像仓库,负责存储镜像文件。

  • Log:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。

Harbor和Registry对比
Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。
  • 提供分层传输机制,优化网络传输
    Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。

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

  • 支持水平扩展集群
    当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。

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

  • Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将kubernetes使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其是在多租户场景下,可以通过租户、namespace和项目相结合的方式来实现对多租户镜像资源的管理和访问控制。

Harbor搭建
环境依赖
  • 操作系统:centos7
docker 17.06.0-ce+
docker-compose 1.18.0+
openssl
python 
  • 安装python

CentOS7默认自带已安装好

  • 安装docker
yum install -y yum-utils  device-mapper-persistent-data lvm2 #安装依赖
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo  #配置源
yum list docker-ce --showduplicates | sort -r  #查看可用版本
yum install docker-ce -y  #安装最新版本
systemctl start docker  #启动服务
systemctl enable docker #开机自启
docker version  #查看版本
  • 安装docker-compose
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose  #国内镜像下载
chmod +x /usr/local/bin/docker-compose # 对二进制文件应用可执行权限
docker-compose --version  #安装成功,查看版本

  • 安装harbor
    一定要下载offline离线安装包: 添加链接描述
    V1.10.2
    下载完成后,解压缩
cd harbor
vim harbor.yml

修改配置文件,主要修改hostname

hostname: 192.168.177.133

https注释掉,因为默认私有化仓库通讯使用http,需要部署证书才可以https不注释会报错
在这里插入图片描述
这个是后台登录密码,默认账户admin
harbor_admin_password: jl920529
其他不需要更改,就可以使用了,最基本部署
确认无误后,使用命令开始安装

./install.sh
  • 安装成功
    在这里插入图片描述
    启动和停止(必须在docker-compose.yml目录下运行命令,如/home/Harbor目录)
docker-compose stop
docker-compose start
docker-compose restart
  • 可以查看docker-compose目前的状态
docker-compose ps

在这里插入图片描述

  • 浏览器访问ip地址如下界面就成功了
    在这里插入图片描述
  • docker 客户端设置及简单push pull操作
    由于目前服务器没有部署证书,不能使用https服务,但是docker新版本目前默认使用https服务,所以需要更改客户端docker配置,否则docker客户端login的时候会失败
    docker安装后对daemon.json进行配置
cd /etc/docker
vim daemon.json
{"insecure-registries": ["192.168.177.133"] #添加harbor服务器的ip或者域名} 

更改后重新加载配置,重启docker服务

systemctl daemon-reload
systemctl restart docker

docker登录

docker login [harbor ip]

输入你的账户名密码即可
接下来pull 一个hello-world

docker pull hello-world

创建项目仓库
在这里插入图片描述
打标签

docker tag SOURCE_IMAGE[:TAG] 192.168.177.133/test/IMAGE[:TAG]

示例

docker tag hello-world 192.168.177.133/test/hello-world:1.0

查看标签

docker images

在这里插入图片描述
推送

docker push 192.168.177.133/test/IMAGE[:TAG]

示例

docker pull 192.168.177.133/test/hello-world:1.0

成功
在这里插入图片描述

harbor支持proxy功能

官方配置说明:
harbor支持proxy功能

但如果支持proxy功能,会导致无法使用pull/push功能
目前找到多方解决办法为pull/push 和 Proxy分开部署,然后通过mirror同步来实现
新版本是否修复这个问题还在调研中

v1.8.0 问题说明:

configure_mirror

issues#120: issues#120

harbor helm k8s部署高可用集群:

harbor helm k8s部署高可用集群

harbor 配置https访问,默认是http,如果部署正式环境,虽然是局域网,但是后期安全性讲,https还是有必要的:

https配置

关于https,之前我们的操作都是阿里云,腾讯云免费证书,省事,相当于,直接获取公匙和私匙,然后配置即可

github issues # 7250 :设置Harbor支持同步数据库中镜像

同步数据库中镜像

记录下来,后续迁移或者数据丢失恢复会用到

github issues #6276:

pull image 缓存镜像无法在在harbor的管理面板中显示

出现了设置好以后无法实现harbor仓库没有的镜像自动从指定的镜像源获取,目前确认的功能就是可以通过habor本地镜像仓库缓存,但是无法在在harbor的管理面板中显示

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值