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

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

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

概念

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

仓库:私有仓库 公有仓库

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

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

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

harbor特性

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

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

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

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

1.5 审计管理,所有对镜像仓库的操作都有记录

harbor组件

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

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

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

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

1.5 JOB services:镜像复制

1.6 log collector:日志收集工具

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

部署harbor

客户端:192.168.100.14 docker

服务端1:192.168.100.11 harbor docker docker-compose

服务端2:192.168.100.12 harbor docker docker-compose

1、部署服务端

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

3、仓库之间的镜像复制

1.1 下载harbor

服务端1cd /opt  # 拖包harbor-offline-installer-v2.8.1.tgztar -xf harbor-offline-installer-v2.8.1.tgz
cd harbor
cp harbor.yml.tml harbor.yml
vim harbor.yml
set nu
5  192.168.100.12(域名或者本机ip地址)
13~18  注释
34  123456  # 管理源密码
53 data_volume: /data   # 上传到仓库之后,仓库保存镜像的路径
wq!./prepare   # 安装和拉取harbor依赖的镜像docker images   # 查看镜像./install.sh   # 执行install.sh文件docker ps浏览器访问 192.168.100.12
账号:admin
密码:123456

1.2 harbor页面操作

上传镜像

右边事件日志:记录
新建项目:
(1)公开:所有人可以访问
(2)非公开:私有
新建项目:test1----公开
新建项目:test2----私有push镜像:(1)上传镜像   # docker pull 镜像(2)上传前需要打标签  # docker tag 镜像 ip地址/项目名/镜像:标签(3)登录仓库   # docker login -u 账号名 -p 账号密码 http://ip地址登出仓库   # docker logout即可1、上传镜像到test1公有仓库docker pull nginx:1.22
docker imagesdocker tag nginx:1.22 192.168.100.12/test1/nginx:test1docker login -u admin -p 123456 http://192.168.100.12  # 会报错docker login -u admin -p 123456 http://127.0.0.1docker push 192.168.100.12/test1/nginxdocker tag nginx:1.22 127.0.0.1/test1/nginx:test1docker push 127.0.0.1/test1/nginx:test1切换到浏览器,查看test1仓库出现test1/nginx2、上传镜像到test2私有仓库
docker login -u admin -p 123456 http:/192.168.100.12   # 登录仓库docker tag nginx:1.22 192.168.100.12/test2/nginx:test2   # 打标签docker push 192.168.100.12/test2/nginx:test2     # 上传镜像

下载镜像

修改服务端vim /usr/lib/systemd/system/docker.service
# 13行在fd:// --containerd中间添加
13 // --insecure-registry 192.169.100.12
wq!
systemctl daemon-reload
systemctl restart docker
docker logout
docker login -u admin -p 123456 http://192.168.100.12# 重启docker,镜像挂了
解决办法:./install.sh 客户端操作
vim /usr/lib/systemd/system/docker.service
# 13行添加
13 // --insecure-registry 192.169.100.12
wq!
systemctl daemon-reload
systemctl restart docker  (1)
浏览器 拉取命令 复制到终端    
docker images  # 查看拉取镜像(2)
docker login -u admin -p 123456 http://192.168.100.12
docker pull 192.168.100.12/test2/nginx:test2

harbor角色管理

权限控制

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

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

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

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

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

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

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

用户管理:创建用户
用户名:xiaodai
邮箱:1786105561@qq.com
全名:
密码:
确认密码:
注释;可写可不写权限控制:
项目--成员--用户--设置权限

仓库之间的镜像复制

如何把一个仓库的镜像转移到另一个仓库?依赖于docker-compose

服务端2
cd /opt   拖包
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod 777 /usr/local/bin/docker-compose
docker-compose -v
# Docker Compose version v2.18.0
tar -xf harbor-offline-installer-v2.8.1.tgz
cd harbor/
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
5 hostname: 192.168.100.13
13~18  注释
34 harbor_admin_password: 123456
wq!
./prepare
./install.sh浏览器:192.168.100.13
admin
123456
仓库管理:
(1)提供者:Harbor
(2)目标名:test1-1
(3)描述:可写可不写
(4)目标URL:http://192.168.100.12
(5)访问ID:admin
(6)访问密码:123456
测试连接----确定复制管理:
(1)新建规则
(2)名称:test1-1
(3)描述;可写可不写
(4)复制模式:Push-based  Pull-based
(5)目标仓库:test1-1-http;//192.168.100.12
保存--选中test1-1--复制--开始复制

http://www.mrgr.cn/news/3445.html

相关文章:

  • GPS 和arduino 获取经纬度
  • 【Python系列】 并发编程在数据处理中的应用
  • 浮毛怎么去掉比较方便?最最高效解决办法宠物空气净化器分享
  • 为什么不用postman做自动化
  • 微信小程序--28(npm包)
  • PPP简介
  • STM32之点亮LED灯
  • 静态代理和动态代理
  • JAVA_7
  • MySQL读写分离
  • MyBatis源码系列1(使用JDBC查询数据)
  • 代码随想录跟练第六天——LeetCode
  • 网际报文协议ICMP及ICMP重定向实例详解7
  • 利用贝叶斯和决策树 来进行医疗诊断的
  • ORA-01110
  • 【ARM 芯片 安全与攻击 5.6 -- 侧信道与隐蔽信道的区别】
  • uniapp-部分文件中文乱码
  • 程序员如何学习开源项目
  • PCB线宽和线间距设计PCB抄板
  • Maven 从本地文件系统加载依赖项