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

harbor

开源的企业级的docker仓库软件。

仓库:私有仓库(用的最多) 公有仓库。

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

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

docker-compose一键编排,所以也是需要安装的。

harbor特性

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

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

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

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

5、审计管理,所有对镜像操作都有记录,

harbor组件

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

2、registry:仓库,保存镜像,同时主要作用push、pull

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

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

5、JOB service:镜像复制

6、log collector:日志收集工具

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

harbor网页

[root@docker1 harbor]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
[root@docker1 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
#准备环境
[root@docker1 harbor]# ./prepare 
#启动harbor
[root@docker1 harbor]# ./install.sh 
#设置标签名
[root@docker1 harbor]# docker tag nginx:1.22 192.168.65.51/test1/nginx:v1
#公有登录
[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.65.51
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://192.168.65.51/v2/": dial tcp 192.168.65.51:443: connect: connection refused
#本地登录
[root@docker1 harbor]# docker login -u admin -p 123456 http://127.0.0.1
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
​
Login Succeeded
#设置镜像名
[root@docker1 harbor]# docker tag nginx:1.22 127.0.0.1/test1/nginx:v1
#上传镜像
[root@docker1 harbor]# docker push 127.0.0.1/test1/nginx:v1
The push refers to repository [127.0.0.1/test1/nginx]
9543dec06aa8: Pushed 
ccf4f419ba49: Pushed 
21f8452ebfb1: Pushed 
25bbf4633bb3: Pushed 
a4f34e6fb432: Pushed 
3af14c9a24c9: Pushed 
v1: digest: sha256:9081064712674ffcff7b7bdf874c75bcb8e5fb933b65527026090dacda36ea8b size: 1570
#客户端上传
[root@docker1 harbor]# vim /usr/lib/systemd/system/docker.service 
需要修改的配置
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.65.51 --containerd=    /run/containerd/containerd.sock
#修改配置后重启服务
[root@docker1 harbor]# systemctl daemon-reload 
[root@docker1 harbor]# systemctl restart docker
#退出登录
[root@docker1 harbor]# docker logout
Removing login credentials for https://index.docker.io/v1/
#登录客户端
[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.65.51
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
​
Login Succeeded
#上传镜像到仓库
[root@docker1 harbor]# docker push 192.168.65.51/test1/nginx:v1
The push refers to repository [192.168.65.51/test1/nginx]
9543dec06aa8: Layer already exists 
ccf4f419ba49: Layer already exists 
21f8452ebfb1: Layer already exists 
25bbf4633bb3: Layer already exists 
a4f34e6fb432: Layer already exists 
3af14c9a24c9: Layer already exists 
v1: digest: sha256:9081064712674ffcff7b7bdf874c75bcb8e5fb933b65527026090dacda36ea8b size: 1570
#下载镜像就直接在harbor页面上复制粘贴到命令行直接运行就行
​
角色:

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

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

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

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

开发者:可以读写,但是没有删除权限

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

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

项目流程图

image-20240820141458583

1

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值