docker-harbor 仓库上传下载镜像以及仓库之间的镜像复制
目录
harbor概念
实验架构:
实验操作:
一、部署服务端
客户端和服务端之间上传、下载镜像、权限控制
服务端本机上传镜像
客户端上传和下载镜像
通过角色对权限进行控制
仓库之间的镜像复制
harbor概念
harboy:是开源的企业级的docker仓库软件。
仓库:私有仓库、公有仓库。
harbor是一个有图形化的,页面UI展示的工具,操作起来很直观。harbor每个组件都是由容器构建的,所以安装harbor必须要有docker。它是由docker-compose一键编排的,所以也需要安装docker-compose。
harbor特性:
1.通过角色对权限进行控制:由于用户和仓库都是基于项目进行组织的,所以不同的用户在不同的项目中拥有不同的权限。
2.镜像复制:就是每个仓库(之间可以通信)之间可以互相复制里面的镜像。
3.UI界面可以对镜像进行删除,删除了之后也会释放本机的空间
4.图形化界面:可以用浏览器进行访问
5.审计管理:所有对镜像仓库的操作都有记录
harbor的组件:
1.proxy:前端页面是nginx,然后在nginx的配置中做了反向代理,把浏览器不同的请求转发到后端不同的容器中。
2.registry:它就是仓库,是用来保存镜像的,同时主要作用是 push/pull
3.core services:harbor的核心功能,对用户进行授权。还检测仓库内镜像的变化以及token,根据不同的权限给于不同的token,token就是保存用户身份的信息,以及账户和密码,就是用于认证身份的组件,一次认证后续就不需要再输入账号和密码了
4.database:负责存储用户的权限、审计日志、docker镜像的分组信息
5.JOB services:用于不同仓库之间镜像复制
6.log collector:日志收集工具
以上组件都是由容器运行,用docker-compose一键拉取部署
实验架构:
客户端 192.168.233.23 需要安装docker
服务端1 192.168.233.21 需要安装docker和docker-compose、harbor
服务端2 192.168.233.22 需要安装docker和docker-compose、harbor
实验操作:
一、部署服务端
安装步骤:(前期需要安装好docker和docker-compose)
把harbor软件包拖入进来
tar -xf harbor-offline-installer-v2.8.1.tgz
cd harbor/
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
修改为本机ip地址
把https模块所有的都注释掉
上面定义的是管理员的账号,下面定义的是密码
仓库保存的镜像的路径
然后在harbor目录下执行
./prepare #安装和拉取harbor依赖的镜像
然后在harbor目录下执行
./install.sh
这样就是启动成功
然后访问浏览器192.168.233.22 本机ip地址
输入账号:admin
密码:123456
客户端和服务端之间上传、下载镜像、权限控制
首先要新建一个项目
服务端本机上传镜像
先要打标签
docker tag nginx:1.22 192.168.233.22/test1/nginx:v1
然后登录仓库
docker login -u admin -p 123456 http://192.168.233.22
注:如果登录出现报错
vim /usr/lib/systemd/system/docker.service
在13行中间添加--insecure-registry 192.168.233.22
然后systemctl daemon-reload
systemctl restart docker
然后重新 ./install.sh 安装即可
然后重新登录 docker login -u admin -p 123456 http://192.168.233.22 就好了
上传命令
docker push 192.168.233.22/test1/nginx:v1
客户端上传和下载镜像
在客户端
vim /usr/lib/systemd/system/docker.service
在13行中间添加--insecure-registry 192.168.233.22 指向你要访问的服务端
然后systemctl daemon-reload
systemctl restart docker
方法一,在浏览器页面之间点拉取
方法二:
首先登录服务端的仓库
docker login -u admin -p 123456 http://192.168.233.22
然后下载镜像
docker pull 192.168.233.22/test1/nginx:v1
客户端上传镜像
docker tag centos:7 192.168.233.22/test1/centos:v1
docker push 192.168.233.22/test1/centos:v1
通过角色对权限进行控制
首先用户管理——创建用户
然后点击项目——成员——用户
角色
1.先添加用户,用户就是一个普通用户,私有项目是无法浏览的
2.要浏览私有项目,必须要项目中添加成员,设定成员的角色
受限访客:只能看,不能上传也不能下载,也没有其他权限
访客:拥有只读权限,可以拉取镜像,不能上传,也无法删除镜像
开发者:可以读写,但是不能删除镜像
维护人员:有读写权限,也可以对项目的配置进行修改
项目管理员:读写、修改、删除都可以
仓库之间的镜像复制
首先仓库管理——新建目标
然后复制管理——新建规则
点击复制