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

docker-harbor 仓库上传下载镜像以及仓库之间的镜像复制

目录

harbor概念

实验架构:

实验操作:

一、部署服务端

客户端和服务端之间上传、下载镜像、权限控制

服务端本机上传镜像

客户端上传和下载镜像

通过角色对权限进行控制

仓库之间的镜像复制


harbor概念

harboy:是开源的企业级的docker仓库软件。

仓库:私有仓库、公有仓库。

harbor是一个有图形化的,页面UI展示的工具,操作起来很直观。harbor每个组件都是由容器构建的,所以安装harbor必须要有docker。它是由docker-compose一键编排的,所以也需要安装docker-compose。

harbor特性:

1.通过角色对权限进行控制:由于用户和仓库都是基于项目进行组织的,所以不同的用户在不同的项目中拥有不同的权限。

2.镜像复制:就是每个仓库(之间可以通信)之间可以互相复制里面的镜像。

3.UI界面可以对镜像进行删除,删除了之后也会释放本机的空间

4.图形化界面:可以用浏览器进行访问

5.审计管理:所有对镜像仓库的操作都有记录

harbor的组件:

1.proxy:前端页面是nginx,然后在nginx的配置中做了反向代理,把浏览器不同的请求转发到后端不同的容器中。

2.registry:它就是仓库,是用来保存镜像的,同时主要作用是 push/pull

3.core services:harbor的核心功能,对用户进行授权。还检测仓库内镜像的变化以及token,根据不同的权限给于不同的token,token就是保存用户身份的信息,以及账户和密码,就是用于认证身份的组件,一次认证后续就不需要再输入账号和密码了

4.database:负责存储用户的权限、审计日志、docker镜像的分组信息

5.JOB services:用于不同仓库之间镜像复制

6.log collector:日志收集工具

以上组件都是由容器运行,用docker-compose一键拉取部署

实验架构:

客户端 192.168.233.23 需要安装docker 

服务端1 192.168.233.21  需要安装docker和docker-compose、harbor

服务端2 192.168.233.22  需要安装docker和docker-compose、harbor

实验操作:

一、部署服务端

安装步骤:(前期需要安装好docker和docker-compose)

把harbor软件包拖入进来

tar -xf harbor-offline-installer-v2.8.1.tgz

cd harbor/

cp harbor.yml.tmpl harbor.yml

vim harbor.yml

修改为本机ip地址

把https模块所有的都注释掉

上面定义的是管理员的账号,下面定义的是密码

仓库保存的镜像的路径

然后在harbor目录下执行

./prepare  #安装和拉取harbor依赖的镜像

然后在harbor目录下执行

 ./install.sh

这样就是启动成功

然后访问浏览器192.168.233.22 本机ip地址

输入账号:admin

密码:123456

客户端和服务端之间上传、下载镜像、权限控制

首先要新建一个项目

服务端本机上传镜像

先要打标签

docker tag nginx:1.22 192.168.233.22/test1/nginx:v1

然后登录仓库

docker login -u admin -p 123456 http://192.168.233.22 

注:如果登录出现报错

vim /usr/lib/systemd/system/docker.service

在13行中间添加--insecure-registry 192.168.233.22

然后systemctl daemon-reload

systemctl restart docker

然后重新  ./install.sh 安装即可

然后重新登录 docker login -u admin -p 123456 http://192.168.233.22 就好了

上传命令

docker push 192.168.233.22/test1/nginx:v1

客户端上传和下载镜像

在客户端

vim /usr/lib/systemd/system/docker.service

在13行中间添加--insecure-registry 192.168.233.22  指向你要访问的服务端

然后systemctl daemon-reload

systemctl restart docker

方法一,在浏览器页面之间点拉取

方法二:

首先登录服务端的仓库

docker login -u admin -p 123456 http://192.168.233.22

然后下载镜像

docker pull 192.168.233.22/test1/nginx:v1

客户端上传镜像

docker tag centos:7 192.168.233.22/test1/centos:v1

docker push 192.168.233.22/test1/centos:v1

通过角色对权限进行控制

首先用户管理——创建用户

然后点击项目——成员——用户

角色

1.先添加用户,用户就是一个普通用户,私有项目是无法浏览的

2.要浏览私有项目,必须要项目中添加成员,设定成员的角色

受限访客:只能看,不能上传也不能下载,也没有其他权限

访客:拥有只读权限,可以拉取镜像,不能上传,也无法删除镜像

开发者:可以读写,但是不能删除镜像

维护人员:有读写权限,也可以对项目的配置进行修改

项目管理员:读写、修改、删除都可以

仓库之间的镜像复制

首先仓库管理——新建目标

然后复制管理——新建规则

点击复制

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 自学Python网站
  • 前端网格布局display: grid;
  • 论文期刊介绍
  • 7. Java 中 HashMap 的扩容机制是怎样的?
  • iOS开发进阶(二十三):iOS 常见面试题汇总
  • uniapp h5手机如何打开本地跑的前端项目进行本地调试
  • 亿发工单管理系统助力五金行业智造升级:高效生产新篇章
  • [数据集][目标检测]竹子甘蔗发芽缺陷检测数据集VOC+YOLO格式2953张3类别
  • NGINX高性能web服务器
  • 20240826日报
  • XML 总结
  • 编译 wolfssl 库
  • Python中的比较运算符:掌握数据世界的较量艺术
  • IPv6 over IPv4隧道概述
  • 没及格,我猜这套华为软件测试面试题没几个人能及格
  • SegmentFault for Android 3.0 发布
  • 4个实用的微服务测试策略
  • ES学习笔记(12)--Symbol
  • JAVA SE 6 GC调优笔记
  • JS笔记四:作用域、变量(函数)提升
  • Python进阶细节
  • Python学习之路16-使用API
  • springMvc学习笔记(2)
  • tensorflow学习笔记3——MNIST应用篇
  • tweak 支持第三方库
  • 阿里研究院入选中国企业智库系统影响力榜
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 翻译--Thinking in React
  • 构建二叉树进行数值数组的去重及优化
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 爬虫模拟登陆 SegmentFault
  • 使用Gradle第一次构建Java程序
  • 我建了一个叫Hello World的项目
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 交换综合实验一
  • 进程与线程(三)——进程/线程间通信
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • !!java web学习笔记(一到五)
  • #《AI中文版》V3 第 1 章 概述
  • #define 用法
  • #NOIP 2014# day.2 T2 寻找道路
  • #pragma multi_compile #pragma shader_feature
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • $forceUpdate()函数
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (floyd+补集) poj 3275
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (NSDate) 时间 (time )比较
  • (Python) SOAP Web Service (HTTP POST)
  • (Qt) 默认QtWidget应用包含什么?
  • (ZT)薛涌:谈贫说富
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (七)Knockout 创建自定义绑定