docker-harbor

docker-harbor

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

harbor:开源的企业级的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一键拉取部署。

客户端:192.168.60.101 docker

服务端:192.168.60.102 harbor docker docker-compose

服务端2:192.168.60.90 harbor docker docker-compose

1、部署服务端

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

3、仓库之间的镜像复制。

操作:

复制代码
[root@docker1 opt]# ls
harbor-offline-installer-v2.8.1.tgz 
[root@docker1 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
[root@docker1 opt]# cd harbor/
[root@docker1 harbor]# cp harbor.yml.tmpl harbor.yml
[root@docker1 harbor]# vim harbor.yml
  5 hostname: 192.168.60.101
  #指定用户名为IP地址
 12 # https related config
 13 #https:
 14   # https port for harbor, default is 443
 15 #  port: 443
 16   # The path of cert and key files for nginx
 17 #  certificate: /your/certificate/path
 18 #  private_key: /your/private/key/path
 #
 34 harbor_admin_password: 123456
 #指定密码
 53 data_volume: /data
 54 #上传到仓库之后,仓库保存的镜像的路径。
[root@docker1 harbor]# ./install.sh 
​
[root@docker1 harbor]# vim /usr/lib/systemd/system/docker.service 
#在第13行中间加上--insecure-registry 192.168.60.101
 13 ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.60.101 --containerd=/run/containerd/containerd.sock
 
[root@docker1 ~]# systemctl daemon-reload
[root@docker1 ~]# systemctl restart docker
​
#给镜像创一个别名
[root@docker1 harbor]# docker tag nginx:1.22 192.168.60.101/test1/nginx:v1
#登录http://192.168.60.101注册表,如果登录成功,Docker CLI会返回Login Succeeded。
[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.60.101
#将镜像上传到仓库中的项目中
[root@docker1 harbor]# docker push 192.168.60.101/test1/nginx:v1 
#从仓库的项目中下载镜像
[root@docker1 harbor]# docker pull 192.168.60.101/test1/nginx:v1
角色:

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

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

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

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

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

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

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

3、仓库之间的镜像复制。

复制代码
[root@docker2 opt]# ls
harbor-offline-installer-v2.8.1.tgz 
[root@docker2 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
[root@docker2 opt]# cd harbor/
[root@docker2 harbor]# cp harbor.yml.tmpl harbor.yml
[root@docker2 harbor]# vim harbor.yml
  5 hostname: 192.168.60.102
  #指定用户名为IP地址
 12 # https related config
 13 #https:
 14 # https port for harbor, default is 443
 15 #  port: 443
 16 # The path of cert and key files for nginx
 17 #  certificate: /your/certificate/path
 18 #  private_key: /your/private/key/path
 #
 34 harbor_admin_password: 123456
 #指定密码
[root@docker2 harbor]# systemctl daemon-reload
[root@docker2 harbor]# systemctl restart docker
#初始化或准备Harbor的配置文件和环境
[root@docker2 harbor]# ./prepare 
#启动harbor服务
[root@docker2 harbor]# ./install.sh 
#用IP地址访问网页

项目的流程图:

相关推荐
云飞云共享云桌面5 分钟前
河北某机器人工厂8个研发设计共享一台SolidWorks云主机
运维·服务器·网络·数据库·算法·性能优化·机器人
m0_4856146720 分钟前
Linux-容器基础2
linux·运维·服务器
于齐龙22 分钟前
2025年12月19日 - 操作系统
运维·服务器
QT 小鲜肉28 分钟前
【Linux命令大全】001.文件管理之mattrib命令(实操篇)
linux·运维·服务器·chrome·笔记
杨了个杨898231 分钟前
日志服务部署
运维·服务器
2301_800050991 小时前
Ansible
运维·ansible
乐迪信息1 小时前
乐迪信息:异物入侵识别算法上线,AI摄像机保障智慧煤矿生产稳定
大数据·运维·人工智能·物联网·安全
鸠摩智首席音效师1 小时前
如何在 Linux 上自动清理 Journalctl 日志 ?
linux·运维·服务器
国科安芯2 小时前
RISC-V 异常中断机制全解析
运维·单片机·嵌入式硬件·安全·risc-v·安全性测试
鸠摩智首席音效师2 小时前
如何在 Linux 下以 www-data 用户运行 Crontab ?
linux·运维·服务器