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

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

harbor

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

仓库:私有仓库(用的最多) 公有仓库。

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

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

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

harbor特性

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

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

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

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

5、审计管理,所有对镜像操作都有记录,

harbor组件

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

2、registry:仓库,保存镜像,同时主要作用push、pull

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

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

5、JOB service:镜像复制

6、log collector:日志收集工具

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

harbor网页

[root@docker1 harbor]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
[root@docker1 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
#准备环境
[root@docker1 harbor]# ./prepare 
#启动harbor
[root@docker1 harbor]# ./install.sh 
#设置标签名
[root@docker1 harbor]# docker tag nginx:1.22 192.168.65.51/test1/nginx:v1
#公有登录
[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.65.51
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://192.168.65.51/v2/": dial tcp 192.168.65.51:443: connect: connection refused
#本地登录
[root@docker1 harbor]# docker login -u admin -p 123456 http://127.0.0.1
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
​
Login Succeeded
#设置镜像名
[root@docker1 harbor]# docker tag nginx:1.22 127.0.0.1/test1/nginx:v1
#上传镜像
[root@docker1 harbor]# docker push 127.0.0.1/test1/nginx:v1
The push refers to repository [127.0.0.1/test1/nginx]
9543dec06aa8: Pushed 
ccf4f419ba49: Pushed 
21f8452ebfb1: Pushed 
25bbf4633bb3: Pushed 
a4f34e6fb432: Pushed 
3af14c9a24c9: Pushed 
v1: digest: sha256:9081064712674ffcff7b7bdf874c75bcb8e5fb933b65527026090dacda36ea8b size: 1570
#客户端上传
[root@docker1 harbor]# vim /usr/lib/systemd/system/docker.service 
需要修改的配置
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.65.51 --containerd=    /run/containerd/containerd.sock
#修改配置后重启服务
[root@docker1 harbor]# systemctl daemon-reload 
[root@docker1 harbor]# systemctl restart docker
#退出登录
[root@docker1 harbor]# docker logout
Removing login credentials for https://index.docker.io/v1/
#登录客户端
[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.65.51
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
​
Login Succeeded
#上传镜像到仓库
[root@docker1 harbor]# docker push 192.168.65.51/test1/nginx:v1
The push refers to repository [192.168.65.51/test1/nginx]
9543dec06aa8: Layer already exists 
ccf4f419ba49: Layer already exists 
21f8452ebfb1: Layer already exists 
25bbf4633bb3: Layer already exists 
a4f34e6fb432: Layer already exists 
3af14c9a24c9: Layer already exists 
v1: digest: sha256:9081064712674ffcff7b7bdf874c75bcb8e5fb933b65527026090dacda36ea8b size: 1570
#下载镜像就直接在harbor页面上复制粘贴到命令行直接运行就行
​
角色:

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

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

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

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

开发者:可以读写,但是没有删除权限

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

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

项目流程图

image-20240820141458583

1

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

相关文章:

  • 机器学习笔记二-回归
  • 判断http链接中文件是否存在
  • Flink CDC (session模式)
  • 下载ISO镜像的方法 Debian、Red Hat 、CentOS、Ubuntu、Kali Linux
  • 想学接口测试,不知道那个工具适合?
  • 干货分享 | TSMaster—RP1210模块使用指南
  • 一步解决Ubuntu中无法使用git clone的问题
  • c++的时间复杂度
  • PDF转图片 JAVA
  • 树莓派5 笔记26:ollama大型语言模型_中文输入法_Python_espeak文字转语音
  • 【kubernetes】k8s安全机制
  • Android T(13) The app is granted permissions by default
  • 4 - Linux远程访问及控制
  • 如何使用AWS EC2资源?
  • Linux高编-进程的概念(1)
  • go语言中new和make的区别
  • SpringBoot响应式编程(3)R2DBC
  • 什么是私有继承
  • Scratch编程:开启智能硬件控制的大门
  • 机器学习第十二章-计算学习理论
  • Java-自定义注解操作日志记录处理(@Pointcut注解不是必须的)
  • 【c++】深入理解别名机制--引用
  • 简便的qemu img扩容方法
  • EPERM: operation not permitted,
  • 将Centos 8 Linux内核版本升级或降级到指定版本
  • 小程序商城被盗刷,使用SCDN安全加速有用吗?
  • nginx的基本使用与其日志
  • linux | 苹果OpenCL(提高应用软件如游戏、娱乐以及科研和医疗软件的运行速度和响应)
  • 算法-UKF中Sigma点生成
  • 精选五款热门骨传导耳机分享,让你避免踩坑的陷阱