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

项目的流程图:

相关推荐
拾心211 小时前
【运维进阶】LNMP + WordPress 自动化部署实验
运维·自动化·ansible·mariadb
大路谈数字化1 小时前
Centos中内存CPU硬盘的查询
linux·运维·centos
程思扬3 小时前
Nextcloud容器化部署革新:Docker+Cpolar构建高效私有云远程访问新架构
docker·容器·架构
赏点剩饭7783 小时前
linux中的hostpath卷、nfs卷以及静态持久卷的区别
linux·运维·服务器
神鸟云4 小时前
DELL服务器 R系列 IPMI的配置
linux·运维·服务器·网络·边缘计算·pcdn
herderl4 小时前
**僵尸进程(Zombie Process)** 和**孤儿进程(Orphan Process)**
linux·运维·服务器·网络·网络协议
泽02024 小时前
Linux 编译器 gcc 与 g++
linux·运维·服务器
G_H_S_3_5 小时前
【网络运维】Playbook项目实战:基于 Ansible Playbook 一键部署 LNMP 架构服务器
linux·运维·服务器·网络·ansible
豆芽脚脚5 小时前
docker compose再阿里云上无法使用的问题
阿里云·docker·容器