当前位置: 首页 > news >正文

docker- harbor私有仓库部署与管理

什么是 harbor

harbor是一个开源的云原生镜像仓库,它允许用户存储、签名、和分发docker镜像。可以将 harbor 看作是私有的docker hub ,它提供了更新安全性和控制性,让组织能够安全的存储和管理镜像

harbor RBAC(基于角色访问控制),可以对不同的用户和用户组进行领过全向控制,并且提供灵活的复制和同步策略,可以实现多个 harbor 实例的镜像复制和同步

Harbor的特性
  1. 基于角色控制

  2. 基于镜像的复制策略

  3. 支持 LDAP/AD

  4. 镜像删除和垃圾回收

  5. 图形化用户界面

  6. 审计管理

  7. 支持 restful API

docker Harbor核心组件
  • proxy

通过一个反向代理同意接受浏览器 docker客户端请求的,并且将请求转发给后端不同的服务,是一个方向海里组件

  • registry

发原则存储docker镜像 处理 docker pull/push 命令来上传和下载

  • core services

horbar的核心功能,包括 ui、oken、webhook

webhook:负责网站的一些服务功能

token:令牌 提供身份认证服务

ui:显示可视化界面

  • databases

为 core services 提供数据的服务 数据库记录镜像的元信息以及用户的身份信息

  • log collector

负责收集其他组件的一些日志,一共我们进行分析以及健康检查等

  • job services

只要做镜像物质,本地镜像可以同步到其它harbor私有仓库中

  • adminserver

主要是做一个后端配置数据管理者,没有太多功能

Docker-Harbor数据流向

docker私有仓库的过程:
  1. 所有的请求或热味的操作都会首先交给 proxy(反向代理)

  2. proxy 会先将请求转发给后端 core services

  3. core services包括 ui【web界面】、token【身份认证】、webhook【网站的一些服务功能 】

  4. 转发给 regiistry【镜像存储】,若需要下载镜像等权限操作,需要通过 core services中 token令牌的身份验证服务才行

  5. 每一次下载和上传 都会产生操作记录,生成日志 ,保存 databases中

  6. databases 记录保存镜像源信息以及用户与组身份 的信息,通过验证授权才能与允许相关操作

私有仓库指向私有仓库的方式有两种
1. /etc/dockerdaemon.josn
2. /usr/lib/systemd/system/docker.service添加: insecure-registrues   $harbor_ip (私有仓库的ip地址)
搭建本地私有仓库
#首先下载 registry 镜像
docker pull registry#在 daemon.json 文件中添加私有镜像仓库地址
vim /etc/docker/daemon.json
{"insecure-registries": ["192.168.86.44:5000"],						#添加,注意用逗号结尾"registry-mirrors": ["https://ae3f5qei.mirror.aliyuncs.com"]
}
systemctl restart docker.service#运行 registry 容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest#为镜像打标签
docker tag centos:7 192.168.86.44:5000/centos:v1#上传到私有仓库
docker push 192.168.86.44:5000/centos:v1#列出私有仓库的所有镜像
curl http://192.168.86.44:5000/v2/_catalog#出私有仓库的 centos 镜像有哪些tag
curl http://192.168.86.44:5000/v2/centos/tags/list#先删除原有的 centos 的镜像,再测试私有仓库下载
docker rmi -f 8652b9f0cb4c
docker pull 192.168.86.44:5000/centos:v1
部署 Docker-Compose 服务
1、下载或者上传 Docker-Compose
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version2、部署 Harbor 服务
(1)下载或上传 Harbor 安装程序
wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
(2)修改harbor安装的配置文件
vim /usr/local/harbor/harbor.cfg
--5行
hostname = 192.168.86.44
【修改,设置为Harbor服务器的IP地址或者域名】
---59行
admin/Harbor12345
harbor_admin_password = Harbor12345
【指定管理员的初始密码,默认的用户名/密码是】3、 启动 Harbor
cd /usr/local/harbor/
在配置好了 harbor.cfg 之后,执行 ./prepare 命令,为 harbor 启动的容器生成一些必要的文件(环境)
再执行命令 ./install.sh 【先删除registry容器】以 pull 镜像并启动容器4、查看 Harbor 启动镜像
cd /usr/local/harbor/
docker-compose ps

创建一个新项目
(1)浏览器访问:http://192.168.86.44 登录 Harbor WEB UI 界面,默认的管理员用户名和密码是 admin/Harbor12345(2)输入用户名和密码登录界面后可以创建一个新项目。点击“+项目”按钮(3)填写项目名称为“myproject-kgc”,点击“确定”按钮,创建新项目(4)此时可使用 Docker 命令在本地通过 127.0.0.1 来登录和推送镜像。默认情况下,Registry 服务器在端口 80 上侦听。
//登录 Harbor
docker login http://127.0.0.1
Useradd:admin
Password:Harbor12345//下载镜像进行测试
docker pull nginx//将镜像打标签
格式:docker tag 镜像:标签  仓库IP/项目名称/镜像名:标签
docker tag nginx:latest 127.0.0.1/ky30-kgc/nginx:v1//上传镜像到 Harbor
docker push 127.0.0.1/ky30-kgc/nginx:v1(5)在 Harbor 界面 myproject-kgc 目录下可看见此镜像及相关信息

 

 

http://www.lryc.cn/news/189020.html

相关文章:

  • 自动化测试的优缺点
  • 深度学习基础知识 Dataset 与 DataLoade的用法解析
  • 【ElasticSearch】深入探索 DSL 查询语法,实现对文档不同程度的检索,以及对搜索结果的排序、分页和高亮操作
  • 使用wireshark解密ipsec ISAKMP包
  • 算法进阶-搜索
  • 时空智友企业流程化管控系统 sessionid泄露漏洞 复现
  • QT编程,QMainWindow、事件
  • 人工智能在教育上的应用2-基于大模型的未来数学教育的情况与实际应用
  • C++学习day5
  • 1.软件开发-HTML结构-元素剖析
  • QTableWidget 表格增删数据
  • Tableau:商业智能(BI)工具
  • 【gmail注册教程】手把手教你注册Google邮箱账号
  • docker版jxTMS使用指南:数据采集系统的高可用性
  • vue如何禁止通过页面输入路径跳转页面
  • mac,linux环境的基础工具安装【jdk,tomcat】
  • chrome窗口
  • 某快递公司Java一面
  • 【C++ Primer Plus学习记录】指针——声明和初始化指针
  • 切换至root用户时,命令提示符颜色为白色,如何修改?
  • 设计模式——17. 状态模式
  • 系统架构设计:14 论软基于架构的软件设计方法(ABSD)的软件开发
  • 如何在 Spring Boot 中进行文件上传
  • Python 图形化界面基础篇:将应用程序打包为可执行文件
  • Android 13.0 蓝牙遥控器确认键弹不出输入法的解决方法
  • spring boot面试50问
  • 条例24~25(设计与声明)
  • Spring5应用之事务处理
  • Python 中最常用的4种股票价格移动平均方法(三)
  • Mybaits缓存踩的坑