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

1、概念

harbor:开源的企业级的docker仓库软件

仓库:私有仓库、公有仓库

harbor是有图形化的,页面UI展示的一个工具,操作起来很直观

harbor每个组件都是由容器构建的,安装harbor必须要有docker

docker-compose一键编排,也需要安装

2、harbor的特性

1、通过角色对权限进行控制,用户和仓库都是基于项目进行组织。不同的用户在不同的项目中可以拥有不同的权限

2、镜像复制,每个仓库(之间可以通信)之间互相复制里面的镜像

3、UI界面可以对镜像进行删除,删除了之后也会释放本机的空间

4、图形化界面,可以用浏览器进行访问

5、审计管理,所有对镜像仓库的操作都有记录,用于审计管理

3.harbor的角色

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

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

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

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

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

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

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

4、harbor的组件

1、proxy:nginx的前端页面,nginx的配置中做的反向代理,浏览器不同的请求转发到后端不同的容器中

2、Registry:仓库,保存镜像,同时push/pull

3、core services:harbor的核心功能,对用户进行授权,检测仓库内镜像的变化以及token,根据不同的权限给予不同的token

4、database:负责存储用户的权限,审计日志、docker镜像的分组信息

5、job services:镜像复制

6、log collector:日志收集工具

以上组件都是由容器运行,docker-compose一键拉取部署

5、部署harbor

bash 复制代码
#安装包解压
cd /opt
tar -xf harbor-offline-installer-v2.8.1.tgz

cd harbor
cp harbor.yml.tmpl harbor.yml

#修改配置文件
vim harbor.yml
5行 hostname: 192.168.230.10
12-18行 全部注释
34行 harbor_admin_password:123456
53行 data_volume:/data
#上传到仓库之后,仓库保存镜像的路径

#安装和拉取harbor依赖的镜像
./prepare

#运行安装
./install.sh

#访问192.168.230.10,登录harbor

6、上传和下载镜像

bash 复制代码
harbor仓库------项目------新建项目test1

#本机上传
#拉取nginx镜像
docker pull nginx:1.22

#打标签
docker tag nginx:1.22 192.168.230.10/test1/nginx:v2

#修改配置文件
vim /usr/lib/systemd/system/docker.service
13行添加 --insecure-registry 192.168.230.10

#重启
systemctl daemon-reload
systemctl restart docker

#登录仓库
docker login -u admin -p 123456 http://192.168.230.10
如果出现以下报错:WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "http://192.168.230.10/v2/": dial tcp 192.168.230.10:80: connect: connection refused
#重新运行安装,再登录
./install.sh

#上传镜像
docker push 192.168.230.10/test1/nginx:v2

#回到harbor仓库查看上传的镜像




#远程,test2从test1下载、上传镜像
#test2修改配置文件
vim /usr/lib/systemd/system/docker.service
13行添加 --insecure-registry 192.168.230.10

#重启
systemctl daemon-reload
systemctl restart docker

#登录仓库
docker login -u admin -p 123456 http://192.168.230.10

#下载镜像
到harbor仓库选择要下载的镜像,点击拉取镜像,直接复制命令执行
docker pull 192.168.230.10/test2/nginx:test2

#上传镜像
#打标签
docker tag centos:7 192.168.230.10/test2/centos:v1

#登录仓库
docker login -u admin -p 123456 http://192.168.230.10

#上传
docker push 192.168.230.10/test2/centos:v1

#回到harbor仓库查看上传的镜像

7、harbor的复制

打开harbor页面------仓库管理------新建目标------填入相关信息,验证远程证书一栏不需要勾选------测试连接成功,再点击确定

复制管理------新建规则------填入信息,复制模式选择Pull-based,点击保存------选中新建的规则,点击复制,状态栏显示为Succeeded表示复制成功------回到项目这一栏查看复制的项目内容
相关推荐
€☞扫地僧☜€1 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
茶馆大橘1 小时前
微服务系列六:分布式事务与seata
分布式·docker·微服务·nacos·seata·springcloud
其乐无涯1 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩1 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布1 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
紅色彼岸花1 小时前
第六章:DNS域名解析服务器
运维·服务器
✿ ༺ ོIT技术༻1 小时前
Linux:认识文件系统
linux·运维·服务器
会掉头发2 小时前
Linux进程通信之共享内存
linux·运维·共享内存·进程通信
我言秋日胜春朝★2 小时前
【Linux】冯诺依曼体系、再谈操作系统
linux·运维·服务器