Docker ----部署Harbor私有仓库
一:介绍Harbor
Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。它主要提供 Dcoker Registry 管理界面UI,可基于角色访问控制,镜像复制,AD/LDAP 集成,日志审核等功能,完全的支持中文。
1、特点
- RBAC 基于角色的权限控制( 是实施面向企业安全策略的一种有效的访问控制方式 )
- 基于策略的镜像复制
- 漏扫
- LADP/AD支持
- 镜像删除和垃圾清理
- Notary镜像签名
- 用户界面
- 审计
- RESful api
- 安装简单(基于compose)
2、架构组成
- Proxy:通过一个前置的反向代理统一接受浏览器,Docker客户端的请求,并将请求转发给后端不同的服务
- Registry:负责存储 Docker 镜像,并处理 docker push/pull 命令
- Core services:Harbor的核心功能,包括 UI、webhook、token 服务
- Database:为 core services 提供数据库服务
- Log collector:负责收集其他组件的 log,供日后进行分析
二:部署Harbor
- 环境准备
两台centos7虚拟机
Harbor服务端(192.168.48.149):搭建私有仓库;需安装 docker-compose、Harbor
client客户端(192.168.48.138):用于远程访问私有仓库;两台都必须先部署好docker环境。
- 实验步骤
(在 harbor服务端配置
)
1、上传harbor所需软件包并解压
[root@localhost ~]# rz ‘上传harbor 、docker-compose包’
[root@localhost ~]# cp docker-compose /usr/bin ‘将docker-compose 复制到/bin目录下便于系统识别’
[root@localhost ~]# tar zvxf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
可自行下载,所需包链接:https://pan.baidu.com/s/1_Sh4e60grDFXBVO3BYOq9Q
提取码:bwhy
2、修改harbor参数文件harbor.cfg
[root@localhost ~]# cd /usr/local/harbor/
[root@localhost harbor]# vim harbor.cfg
3、开启harbor
[root@localhost harbor]# sh install.sh
‘install.sh会直接调用docker-compose.yml,进行编排容器服务’
4、查看镜像和容器是否启动
[root@localhost harbor]# docker images ‘查看镜像’
[root@localhost harbor]# docker ps -a ‘查看容器’
[root@localhost harbor]# docker-compose ps ‘查看容器,在harbor目录下使用’
‘可正常开启,容器呈UP状态’
5、在浏览器中输入harbor服务器的IP地址
用户名:admin
密 码:Harbor12345
点击“+项目”,新建一个项目,测试私有仓库的上传和下载
6、终端登录Harbor
[root@localhost harbor]# docker login -u admin -p Harbor12345 http://127.0.0.1/
7、在公有仓管下载镜像
[root@localhost harbor]# docker pull nginx
‘docker pull :如果不指定节点IP,默认会从docker 官方仓库下载’
8、上传nginx镜像到私有仓库
[root@localhost harbor]# docker tag nginx:latest 127.0.0.1/test01/nginx:v1 ‘定义镜像版v1’
[root@localhost harbor]# docker push 127.0.0.1/test01/nginx
查看harbor镜像是否上传成功
(在client客户端配置
)
1、客户端远程访问管理harbor
[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
[root@localhost ~]# systemctl daemon-reload ‘重载’
[root@localhost ~]# systemctl restart docker ‘重启’
2、登录
[root@localhost ~]# docker login -u admin -p Harbor12345 http://192.168.48.149
3、下载私有仓库镜像
[root@localhost ~]# docker pull 192.168.48.149/test01/nginx:v1
进入harbor可查看到下载和日志信息
4、先从共有仓库下载cirros镜像
[root@localhost ~]# docker pull cirros
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.48.149/test01/nginx v1 602e111c06b6 3 days ago 127MB
cirros latest 3c82e4d066cf 7 weeks ago 12.6MB
5、修改标签并上传镜像到私有仓库
[root@localhost system]# docker tag cirros:latest 192.168.48.149/test01/cirros:v1
[root@localhost system]# docker push 192.168.48.149/test01/cirros:v1
到harbor查看,cirros镜像上传到私有仓库的项目中
(在harbor上配置
)
Harbor私有仓库可以使用docker-compose进行管理。
1、私有仓库管理
[root@localhost harbor]# docker-compose down -v ‘关闭所有容器’
2、修改参数文件,看实际需求
[root@localhost harbor]# ./prepare
‘如修改所需参数,需要重新运行install.sh,如修改可选参数,则需运行脚本 ./prepare 将配置文件内容进行重新生效’
[root@harbor harbor]# docker-compose up -d ‘启动所有容器服务’‘不要关闭防火墙’
创建Harbor用户
给创建的用户添加权限
(在客户端操作
)
1、使用新用户登录,先要登出admin账户
[root@localhost ~]# docker logout 192.168.48.149
2、使用新的用户登录
[root@localhost system]# docker login 192.168.48.149
在之后的实验过程中,可以用新的用户进行镜像的上传和下载等操作。