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地址访问网页

项目的流程图:

相关推荐
_.Switch44 分钟前
构建现代应用的Python Serverless架构详解
运维·开发语言·python·云原生·架构·serverless·restful
小O_好好学1 小时前
Linux帮助命令
linux·运维·服务器
MXsoft6181 小时前
监控易监测对象及指标之:Kubernetes(K8s)集群的全方位监控策略
运维
怒放的生命.1 小时前
电气自动化入门05:三相异步电动机的正反转点动控制电路
运维·自动化·电气自动化·电工基础
莫泽Morze2 小时前
VMware安装rustdesk服务器
运维·服务器
jonssonyan2 小时前
稳了,搭建Docker国内源图文教程
运维·docker·容器
周湘zx2 小时前
k8s中的微服务
linux·运维·服务器·微服务·云原生·kubernetes
如意机反光镜裸3 小时前
CentOS7搭建Hadoop3集群教程
运维
周湘zx4 小时前
k8s中的存储
linux·运维·云原生·容器·kubernetes
[听得时光枕水眠]4 小时前
【Docker】Docker上安装MySql8和Redis
运维·docker·容器