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

Docker的私有仓库部署——Harbor

docker-harbor 私有仓库部署和管理:

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

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

harbor是有图形化的,页面ui展示的一个工具。操作起来很直观。

harbor每个组件都是由容器构建的,所以安装harbor必须要有docker。

docker-compose一键编排,所以也是需要安装的。

harbor:

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

2、镜像复制,每个仓库(之间可以通信)之间可以互相复制里面的镜像

A <----- B

NGINX NGINX

HTTP

MYSQL

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

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

5、审计管理,所有对镜像仓库的操作都有记录,用于审计管理


harbor的组件:

1、porxy:nginx的前段页面,nginx的配置中做个反向代理。浏览器不同的请求转发到后端的不同的容器中。

2、Registry:仓库,保存镜像,同时push/pull

3、core services:Harbor的核心功能,对用户进行授权,检测仓库内镜像的变化以及token,根据不同的权限给于不同的token。

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

5、JOB services 镜像复制

6、log collector 日志收集

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


Harbor 部署 

实验部署:

客户端:  192.168.233.33 DOCKER

服务端:  192.168.233.32 HARBOR DOCKER-COMPOSE

服务端2:192.168.233.33 HARBOR DOCKER-COMPOSE

(1)部署 Docker-Compose 服务

(2) 部署 Harbor 服务 

修改harbor安装的配置文件

vim /opt/harbor/harbor.yml
--5行--修改,设置为Harbor服务器的IP地址或者域名
hostname = 192.168.233.31
--59行--指定管理员的初始密码,默认的用户名/密码是admin/Harbor12345
harbor_admin_password = 12345
把默认密码改为1234566

(3) 启动 Harbor 

cd /usr/local/harbor/
在配置好了 harbor.cfg 之后,执行./prepare      #为 harbor 启动的容器生成一些必要的文件(环境)./install.sh   # 以 pull 镜像并启动容器

 (4)查看 Harbor 启动镜像 

cd /usr/local/harbor/
docker-compose ps##以下命令均在在habor的配置目录下运行
docker-compose up -d      #启动
docker-compose stop       #停止
docker-compose restart    #重新启动

(5)创建一个新项目

1)浏览器访问:http://192.168.233.31登录 Harbor WEB UI 界面

2)输入用户名和密码登录界面后可以创建一个新项目。点击“+项目”按钮

3)填写项目名称为“myproject-test”,点击“确定”按钮,创建新项目

 4)此时可使用 Docker 命令在本地通过 192.168.233.31 来登录和推送镜像。

docker login -u admin -p 123456 http://192.168.233.31
登录Harbor

将镜像打标签

上传镜像到 Harbor

docker push 192.168.233.31/myproject-test/nginx:v10
 下载镜像
docker pull 192.168.233.31/myproject-test/nginx:v10

(5)在 Harbor 界面 myproject-test 目录下可看见此镜像及相关信息 

(6) 在其他客户端上传镜像 

以上操作都是在 Harbor 服务器本地操作。如果其他客户端登录到 Harbor,就会报如下错误。

1)在 Docker 客户端配置操作 

解决办法是:在 Docker server 启动的时候,增加启动参数,默认使用 HTTP 访问。

vim /usr/lib/systemd/system/docker.service
--13行--修改
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.233.31 --containerd=/run/containerd/containerd.sock//重启 Docker,再次登录
systemctl daemon-reload
systemctl restart docker//再次登录 Harbor
docker login -u admin -p 123456 http://192.168.233.31
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Login Succeeded
//将自动保存凭据到/root/.docker/config.json,下次登录时可直接使用凭据登录 Harbor

 创建用户:

角色:

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

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

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

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

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

管理员:读写,修改,删除的权限 


再次安装一台Harbor 

再次开启一台主机,按照前面的步骤安装一台Harbor服务器 

复制的过程 :

(1)添加复制对象 

 服务端(要复制的主机):登录Harbor管理员

复制管理=》目标=》+目标=》目标填写

输入对方主机的用户名和密码,URL  等待,进行测试连接,如果没问题就可以确定 

(2)进行项目的选择复制 

 服务端中:

项目=》点击要复制的项目名=》复制 =》 +复制规则

编写好复制规则,进行测试连接,如果无误,就可以确认

 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 超实用超详细的自动补全验证码脚本!切实解决了各种数字、字母、滑动拼图等验证码引发的痛点,两步即可解放双手
  • 小卷原创视频教程:最新fastdfs单机服务搭建
  • 告别U盘:看医院如何挑选高效安全的文件摆渡系统
  • 多线程任务中设置MDC的实践
  • Java中的Stream API详解
  • 吐血整理,最全论文指令手册,还有 ChatGPT 3.5/4.0 新手使用手册~ 【亲测好用】
  • 应用界面设计(原生,自定义控件,设计与交互-小白必看)
  • python从入门到精通:数据容器
  • bbr 多流共存的动态行为
  • UE5.4 - 下载和安装
  • 【附源码】Python :PYQT界面点击按钮随机变色
  • Vscode——如何实现 Ctrl+鼠标左键 跳转函数内部的方法
  • AI自动剪辑短视频,对接多个自媒体平台,原视频全自动混合剪辑功能。
  • IO进程(5):线程
  • 智云-一个抓取web流量的轻量级蜜罐docker一键启动
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Angular Elements 及其运作原理
  • angular组件开发
  • Asm.js的简单介绍
  • classpath对获取配置文件的影响
  • Consul Config 使用Git做版本控制的实现
  • CSS 提示工具(Tooltip)
  • HashMap ConcurrentHashMap
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • JS基础之数据类型、对象、原型、原型链、继承
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Rancher如何对接Ceph-RBD块存储
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • vue的全局变量和全局拦截请求器
  • 规范化安全开发 KOA 手脚架
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端设计模式
  • 前端学习笔记之观察者模式
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 微服务核心架构梳理
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (6)STL算法之转换
  • (BFS)hdoj2377-Bus Pass
  • (JS基础)String 类型
  • (LeetCode C++)盛最多水的容器
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (八十八)VFL语言初步 - 实现布局
  • (分布式缓存)Redis分片集群
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (含笔试题)深度解析数据在内存中的存储
  • (七)Activiti-modeler中文支持
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)负载均衡,回话保持,cookie