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

项目的流程图:

相关推荐
运维&陈同学1 小时前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
是阿建吖!1 小时前
【Linux】进程状态
linux·运维
明明跟你说过1 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
Mr_Xuhhh3 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
朝九晚五ฺ10 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
Kkooe11 小时前
GitLab|数据迁移
运维·服务器·git
久醉不在酒12 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql
意疏13 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
虚拟网络工程师13 小时前
【网络系统管理】Centos7——配置主从mariadb服务器案例(下半部分)
运维·服务器·网络·数据库·mariadb
墨鸦_Cormorant13 小时前
使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
redis·nginx·docker