Harbor-私有镜像仓库

目录

一、Harbor 原理说明

1.软件资源介绍

2.Harbor 特性

3.Harbor 认证过程

4.Harbor 认证流程

二、私有镜像仓库实验

1.环境准备

2.安装docker

3.配置镜像加速和私有仓库地址

4.搭建harbor仓库

5.本地windows浏览器访问配置


一、Harbor 原理说明

1.软件资源介绍

  • Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor。其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。
  • 它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control), AD/LDAP集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
  • Harbor的每个组件都是以Docker容器的形式构建的,使用Docker Compose来对它进行部署。用于部署Harbor的Docker Compose模板位于  /Deployer/docker-compose.yml,由5个容器组成,这几个容器通过Docker link的形式连接在一起,在容器之间通过容器名字互相访问。对终端用户而言,只需要暴露 proxy ( 即Nginx)的服务端口。

         Proxy:由Nginx 服务器构成的反向代理。

         Registry:由Docker官方的开源 registry 镜像构成的容器实例。

         UI:即架构中的 core services, 构成此容器的代码是 Harbor 项目的主体。

         MySQL:由官方 MySQL 镜像构成的数据库容器。

         Log:运行着 rsyslogd 的容器,通过 log-driver 的形式收集其他容器的日志

2.Harbor 特性

        a、基于角色控制:用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限。

         b、基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制

         c、支持LDAP: Harbor的用户授权可以使用已经存在LDAP用户

         d、镜像删除 & 垃圾回收: Image可以被删除并且回收Image占用的空间,绝大部分的用户操作API, 方便用户对系统进行扩展

         e、用户UI:用户可以轻松的浏览、搜索镜像仓库以及对项目进行管理

         f、轻松的部署功能: Harbor提供了online、offline安装,除此之外还提供了virtualappliance安装。

         g、Harbor 和 docker registry 关系: Harbor实质上是对 docker registry 做了封装,扩展了自己的业务模块。

3.Harbor 认证过程

         a、dockerdaemon从docker registry拉取镜像。

         b、如果dockerregistry需要进行授权时, registry将会返回401 Unauthorized响应,同时在响应中包含了docker client如何进行认证的信息。

         c、dockerclient根据registry返回的信息,向auth server发送请求获取认证token。

         d、auth server则根据自己的业务实现去验证提交的用户信息是否存符合业务要求。e、用户数据仓库返回用户的相关信息。

         f、auth server将会根据查询的用户信息,生成token令牌,以及当前用户所具有的相关权限信息.上述就是完整的授权过程.当用户完成上述过程以后便可以执行相关的pull/push操作。认证信息会每次都带在请求头中。

4.Harbor 认证流程

         a、首先,请求被代理容器监听拦截,并跳转到指定的认证服务器。

         b、 如果认证服务器配置了权限认证,则会返回401。通知dockerclient在特定的请求中需要带上一个合法的token。而认证的逻辑地址则指向架构图中的core services。

         c、 当docker client接受到错误code。client就会发送认证请求(带有用户名和密码)到coreservices进行basic auth认证。

         d、 当C的请求发送给ngnix以后, ngnix会根据配置的认证地址将带有用户名和密码的请求发送到core serivces。

         e、 coreservices获取用户名和密码以后对用户信息进行认证(自己的数据库或者介入LDAP都可以)。成功以后,返回认证成功的信息

二、私有镜像仓库实验

1.环境准备

两台虚拟机:一台服务器(192.168.159.82),一台客户端(192.168.159.83)。

  • docker地址:
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm

docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
  • docker-compose地址:
curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • Harbor 地址:
https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-offline-installer-v1.2.0.tgz

2.安装docker

服务端和客户端同时执行

# 上传docker安装包并解压
# 安装上传的dockerrpm包
  yum -y install docker*

  systemctl enable docker

# 重启服务器,使docker可以接管防火墙规则。
  reboot

3.配置镜像加速和私有仓库地址

客户端执行

mkdir /etc/docker

vim /etc/docker/daemon.json

{
        "registry-mirrors": ["https://si4p9a1f.mirror.aliyuncs.com"]
        "insecure-registries": ["harbor.daboluo.com"]
}

systemctl daemon-reload && systemctl restart docker


# 将 harbor.daboluo.com 域名指向服务端地址
vim /etc/hosts
192.168.159.82    harbor.daboluo.com

4.搭建harbor仓库

服务器执行:

# 上传 harbor-offline-installer-v1.2.0 的rpm包

# 下载docker-compose
curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod a+x /usr/local/bin/docker-compose

# 查看版本信息
docker-compose version

# 解压harbor压缩包
tar -zxvf harbor-offline-installer-v1.2.0

mv harbor /usr/local/ && cd /usr/local/harbor/

vim harbor.cfg
hostname = harbor.daboluo.com
ui_url_protocol = https

# 创建加密证书
mkdir -p /data/cert

# 创建私钥文件,填写密码
openssl genrsa -des3 -out server.key 2048

#申请证书
openssl req -new -key server.key -out server.csr

#将私钥密码备份给org
cp server.key server.key.org

#将私钥密码去除
openssl rsa -in server.key.org -out server.key

#根据私钥文件签发证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

#查看私钥和证书的位置是否正确
cd /usr/local/harbor && cat harbor.cfs

# 进行安装
./install.sh

# 查看所有容器
docker ps -a

# 启动所有容器
docker-compose -f /usr/local/harbor/docker-compose.yml start

docker restart docker

5.本地windows浏览器访问配置

# 配置windows的hosts文件,将域名解析到harbor服务器
C:\Windows\System32\drivers\etc\hosts
192.168.159.82    harbor.daboluo.com

浏览器访问harbor.xinxianghf.com
输入用户名和密码
admin
Harbor12345

新建项目(镜像仓库名称)

# 创建普通用户推送、下载镜像

客户端执行:

# 登录仓库
docker login harbor.daboluo.com -udaboluo

# 修改镜像的标签名
docker tag SOURCE_IMAGE[:TAG] harbor.daboluo.com/nginx/IMAGE[:TAG]

# 推送镜像
docker push harbor.daboluo.com/nginx/IMAGE[:TAG]

# 下载镜像
docker pull harbor.daboluo.com/nginx/nginx:latest

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值