Docker容器之harbor私有仓库部署与管理

  • 前言
  • 一、Harbor概述
  • 二、Harbor的特性
  • 三、Harbor的构成
  • 四、Harbor私有仓库搭建
    • (1)安装docker-compose
    • (2)安装harbor
    • (3)新建项目
    • (4)镜像推送
    • (5)从私有仓库下载镜像
    • (6)Harbor管理

前言

之前我们搭建了本地私有仓库,但是本地仓库的管理和使用比较麻烦,个原生的私有仓库并不好用,所以我们采用harbor私有仓库,也叫私服,更加人性化。

一、Harbor概述

  1. Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker Registry服务。
  2. Harbor以Docker 公司开源的Registry 为基础,提供了图形管理UI、基于角色的访问控制(Role Based AccessControl)、AD/LDAI们成以心宙计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。
  3. Harbor的每个组件都是以Docker容器的形式构建的,使用docker-compose来对它进行部署。用于部署Harbor的docker-compose模板位于harbor/docker-compose.yml。

二、Harbor的特性

  1. 基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。
  2. 基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。
  3. 支持LDAP/AD:Harbor可以集成企业内部已有的AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。
  4. 镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。
  5. 图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。
  6. 审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  7. 支持 RESTful API:RESTful API 提供给管理员对于Harbor更多的操控,使得与其它管理软件集成变得更容易。
  8. Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。

三、Harbor的构成


Harbor在架构上主要有proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)、Job services六个组件。

  1. Proxy:是一个nginx的前端代理,Harbor的Registry、UI、Token服务等组件,都处在nginx反向代理后边。该代理将来自浏览器、docker clients的请求转发到后端不同的服务上。
  2. Registry:负责存储Docker镜像,并处理Docker push/pull命令。由于要对用户进行访问控制,即不同用户对Docker镜像有不同的读写权限,Registry会指向一个Token服务,强制用户的每次Docker pull/push请求都要携带一个合法的Token,Registry会通过公钥对Token进行解密验证。
  3. Core services:Harbor的核心功能,主要提供一下3个服务:

UI(harbor-ui):提供图形化界面,帮助用户管理Registry上的镜像(image),并对用户进行授权。
WebHook:为了及时获取Registry上image状态变化的情况,在Registry上配置WebHook,把状态变化传递给UI模块。
Token服务:负责根据用户权限给每个Docker push/pull命令签发Token.Docker客户端向Registry服务发起的请求,如果不包含Docker Token,会被重定向到Token服务,获得Token后再重新向Registry进行请求。

  1. Database(harbor-db):为core services提供数据库服务,负责存储用户权限、审计日志、Docker镜像分组信息等数据。Docker数据存储在文件系统,但是分组信息存储在数据库。
  2. Job services:主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。
  3. Log collector(harbor-log):负责收集其他组件的日志到一个地方。

Harbor 的每个组件都是以 Docker 容器的形式构建的,因此,使用 Docker Compose 来对它进行部署。
总共分为7个容器运行,通过在docker-compose.yml所在目录中执行 docker-compose ps 命令来查看, 名称分别为:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。
其中 harbor-adminserver 主要是作为一个后端的配置数据管理,并没有太多的其他功能。harbor-ui 所要操作的所有数据都通过 harbor-adminserver 这样一个数据配置管理中心来完成

四、Harbor私有仓库搭建

(1)安装docker-compose

cd /opt
#上传docker-compose
mv docker-compose /usr/bin
chmod +x /usr/bin/docker-compose

(2)安装harbor

rz harbor-offline-installer-v1.2.2.tgz
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
#==配置Harbor参数文件==
vim /usr/local/harbor/harbor.cfg
#==第5行修改==
hostname = 192.168.48.14



安装harbor镜像

sh /usr/local/harbor/install.sh


查看镜像与容器

docker ps
docker images


物理机访问server IP

192.168.48.14
用户名:admin
密码:Harbor12345

(3)新建项目



(4)镜像推送

#登录私有仓库
docker login -u admin -p Harbor12345 http://192.168.48.14
vim /etc/docker/daemon.json
{"insecure-registries": ["192.168.48.14"]
}




#下载镜像进行测试
docker pull nginx#镜像打标签
docker tag nginx 192.168.48.14/xy/nginx:v1#上传镜像到Harbor
docker push 192.168.48.14/xy/nginx:v1

浏览器访问仓库,查看镜像

(5)从私有仓库下载镜像

使用另外一台服务器,进行镜像下载

#添加私有仓库地址
vim /etc/docker/daemon.json
{"insecure-registries": ["192.168.48.14"]
}
#下载镜像
#docker pull 私有仓库地址/仓库名/镜像名:标签
docker pull 192.168.48.14/xy/nginx:v1


查看Hardor日志

(6)Harbor管理

可以使用 docker-compose 来管理 Harbor。一些有用的命令如下所示,必须在与docker-compose.yml 相同的目录中运行。
修改 Harbor.cfg 配置文件

  1. 要更改 Harbour 的配置文件时,请先停止现有的 Harbour 实例并更新 Harbor.cfg;

  2. 然后运行 prepare 脚本来填充配置;

  3. 最后重新创建并启动 Harbour 的实例。

    #卸载
    docker-compose down -v#编辑配置文件
    vim harbor.cfg#填充配置
    ./prepare#启动Harbor
    docker-compose up -d#如果报错
    解决思路
    关闭防火墙、重启docker
    systemctl stop firewalld
    setenfore 0
    systemctl restart docker
    

Docker容器之harbor私有仓库部署与管理相关推荐

  1. Docker harbor私有仓库部署与管理

    Docker harbor私有仓库部署与管理. 前言 一.什么是Harbor 二.Harbor的特性 三.Harbor的构成 四.Harbor部署 4.1 环境准备 4.2 部署Docker Comp ...

  2. Docker 私有仓库部署和管理 | Harbor 概述 - 核心组件 - 架构拓扑 | Harbor 构建 Docker 私有仓库实战(理论+实操,超详细!)

    文章目录 一.Docker Harbor 概述 1.Harbor 简介 2.Harbor 的优势 二.Harbor 的核心组件 1.Proxy 2.Registry 3.Core services 4 ...

  3. k8s-kubeadm和Harbor私有仓库部署

    部署k8s-kubeadm 文章目录 环境准备 需求: 环境部署 部署K8S集群 //设定kubectl //所有节点部署网络插件flannel //测试 pod 资源创建 部署 Dashboard ...

  4. docker push到harbor私有仓库出现的相关问题及解决办法

    目录 0. 我们打开harbor的镜像仓库, 可以看到有推送仓库的命令, 包含了具体地址 1. 但是我在执行push命令报错了,  Get https://10.6.119.106/v2/: dial ...

  5. docker 从harbor 拉取镜像慢_Kubernetes-通过Rancher从Harbor私有仓库拉取镜像

    引言   前一篇文章详细描述了如何使用rancher搭建Kubernetes高可用集群,集群搭建好了后,我们就需要开始部署应用了,那么如何从私有镜像仓库拉取镜像呢? 原理   Harbor使用了基于角 ...

  6. 这就是你日日夜夜想要的docker!!!---------Harbor私有仓库

    文章目录 一.Harbor私有仓库介绍 1.什么是Harbor?有什么作用? 2.harbor的特性 3.harbor配置文件参数 二.部署Harbor私有仓库 1.harbor服务器安装harbor ...

  7. Docker容器私有仓库——Harbor私有仓库的搭建

    Docker容器私有仓库--Harbor私有仓库的搭建 一.Harbor介绍 1.Harbor概念 2.Harbor的核心组件 3.Harbor的优点 二.Harbor搭建的环境准备 1.当前Harb ...

  8. Docker容器之compose容器集群的快速编排

    Docker容器之compose容器集群的快速编排 前言 一.Docker-compose简介 二.YAML文件格式及编写注意事项 (1)YAML文件格式 (2)YAML格式的注意事项 (3)YAML ...

  9. podman加速配置、harbor镜像仓库部署

    podman镜像加速配置 镜像加速可以使用阿里云.清华大学.网易等多个镜像加速,这里我们使用阿里云的镜像加速. 前提需要你先登录,才可以获取你的镜像加速的地址 阿里云镜像加速 // 修改配置文件 ce ...

最新文章

  1. codeforces741C Arpa’s overnight party and Mehrdad’s silent entering(二分图)
  2. squid 不缓存特定页面_【零基础学云计算】squid代理服务器介绍与配置(理论+实践)一...
  3. Linux下vsftpd基本配置和虚拟用户设置的安全方法
  4. Linux内核性能架构:perf_event
  5. 1 什么是机器学习(Machine Learning)?
  6. photoshop下载教程
  7. Android快速开发推荐10个框架Android 快速开发框架:afinal、ThinkAndroid、andBase、KJFrameForAndroid、SmartAndroid、
  8. 还在用纸质表进行设备巡检?
  9. 初学Linux服务器管理
  10. 粗糙漫画网站(真的粗糙)之首页设计
  11. 北京周边10个樱桃采摘地
  12. Spring集成Hibernate5_03-HibernateDaoSupport
  13. SpringBoot参数校验--List类型
  14. python,unicode转换中文,中文转换unicode
  15. 如何获取屏幕保护程序的密码
  16. 哈理工第六届程序设计大赛 G 逃脱(BFS)
  17. not-null property references a null or transient value: 等关于cinema项目bug
  18. 2020上半年勒索病毒报告:勒索手段升级,不交赎金就公开数据
  19. java程序画龙猫_几步教你画出萌萌的龙猫
  20. 经销商窜货怎么办?最好的解决方案是?

热门文章

  1. Linux查看文件内容的方法
  2. 7-20 出生年 (10 分)
  3. C语言--实现顺序表的基本操作
  4. GAGE USB信号采集卡
  5. Qt Design Studio 2.2 测试版发布啦!迎来全新属性视图
  6. 从A至Z,用30个单词来概括过去十年的游戏行业
  7. 手机摄影中多摄融合理论详解与代码实战
  8. 一元线性模型用R语言进行拟合
  9. 【兴趣书签】为什么观测之后量子态会坍塌
  10. 微信6.0 ActionBar样式