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

项目的流程图:

相关推荐
青木沐14 分钟前
Jenkins介绍
运维·jenkins
WTT00111 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
苹果醋31 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
日记跟新中2 小时前
Ubuntu20.04 修改root密码
linux·运维·服务器
唐小旭2 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
明 庭2 小时前
Ubuntu下通过Docker部署NGINX服务器
服务器·ubuntu·docker
BUG 4042 小时前
Linux——Shell
linux·运维·服务器
大霞上仙2 小时前
Linux 多命令执行
linux·运维·服务器
冷心笑看丽美人2 小时前
探索 Samba 服务器:搭建跨平台文件共享的桥梁
运维·服务器