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

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

概念

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

仓库:私有仓库 公有仓库

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

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

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

harbor特性

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

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

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

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

1.5 审计管理,所有对镜像仓库的操作都有记录

harbor组件

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

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

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

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

1.5 JOB services:镜像复制

1.6 log collector:日志收集工具

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

部署harbor

客户端:192.168.100.14 docker

服务端1:192.168.100.11 harbor docker docker-compose

服务端2:192.168.100.12 harbor docker docker-compose

1、部署服务端

2、客户端和服务端之间上传,下载镜像,权限控制

3、仓库之间的镜像复制

1.1 下载harbor

服务端1

cd /opt  # 拖包harbor-offline-installer-v2.8.1.tgz

tar -xf harbor-offline-installer-v2.8.1.tgz
cd harbor
cp harbor.yml.tml harbor.yml
vim harbor.yml
set nu
5  192.168.100.12(域名或者本机ip地址)
13~18  注释
34  123456  # 管理源密码
53 data_volume: /data   # 上传到仓库之后,仓库保存镜像的路径
wq!

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

docker images   # 查看镜像

./install.sh   # 执行install.sh文件

docker ps

浏览器访问 192.168.100.12
账号:admin
密码:123456

1.2 harbor页面操作

上传镜像

右边事件日志:记录
新建项目:
(1)公开:所有人可以访问
(2)非公开:私有
新建项目:test1----公开
新建项目:test2----私有

push镜像:(1)上传镜像   # docker pull 镜像
         (2)上传前需要打标签  # docker tag 镜像 ip地址/项目名/镜像:标签
         (3)登录仓库   # docker login -u 账号名 -p 账号密码 http://ip地址
             登出仓库   # docker logout即可

1、上传镜像到test1公有仓库

docker pull nginx:1.22
docker images

docker tag nginx:1.22 192.168.100.12/test1/nginx:test1

docker login -u admin -p 123456 http://192.168.100.12  # 会报错

docker login -u admin -p 123456 http://127.0.0.1

docker push 192.168.100.12/test1/nginx

docker tag nginx:1.22 127.0.0.1/test1/nginx:test1

docker push 127.0.0.1/test1/nginx:test1

切换到浏览器,查看test1仓库出现test1/nginx

2、上传镜像到test2私有仓库
docker login -u admin -p 123456 http:/192.168.100.12   # 登录仓库

docker tag nginx:1.22 192.168.100.12/test2/nginx:test2   # 打标签

docker push 192.168.100.12/test2/nginx:test2     # 上传镜像

下载镜像

修改服务端

vim /usr/lib/systemd/system/docker.service
# 13行在fd:// --containerd中间添加
13 // --insecure-registry 192.169.100.12
wq!
systemctl daemon-reload
systemctl restart docker
docker logout
docker login -u admin -p 123456 http://192.168.100.12

# 重启docker,镜像挂了
解决办法:./install.sh 

客户端操作
vim /usr/lib/systemd/system/docker.service
# 13行添加
13 // --insecure-registry 192.169.100.12
wq!
systemctl daemon-reload
systemctl restart docker  

(1)
浏览器 拉取命令 复制到终端    
docker images  # 查看拉取镜像

(2)
docker login -u admin -p 123456 http://192.168.100.12
docker pull 192.168.100.12/test2/nginx:test2

harbor角色管理

权限控制

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

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

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

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

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

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

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

用户管理:创建用户
用户名:xiaodai
邮箱:1786105561@qq.com
全名:
密码:
确认密码:
注释;可写可不写

权限控制:
项目--成员--用户--设置权限

仓库之间的镜像复制

如何把一个仓库的镜像转移到另一个仓库?依赖于docker-compose

服务端2
cd /opt   拖包
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod 777 /usr/local/bin/docker-compose
docker-compose -v
# Docker Compose version v2.18.0
tar -xf harbor-offline-installer-v2.8.1.tgz
cd harbor/
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
5 hostname: 192.168.100.13
13~18  注释
34 harbor_admin_password: 123456
wq!
./prepare
./install.sh

浏览器:192.168.100.13
admin
123456
仓库管理:
(1)提供者:Harbor
(2)目标名:test1-1
(3)描述:可写可不写
(4)目标URL:http://192.168.100.12
(5)访问ID:admin
(6)访问密码:123456
测试连接----确定

复制管理:
(1)新建规则
(2)名称:test1-1
(3)描述;可写可不写
(4)复制模式:Push-based  Pull-based
(5)目标仓库:test1-1-http;//192.168.100.12
保存--选中test1-1--复制--开始复制
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值