1. 首页
  2. DevOps

Harbor私有库部署使用

简介:

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。

harbor以docker-compose的规范形式组织各个组件,并通过docker-compose工具进行启停。

Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率。

主要组件

Proxy:对应启动组件nginx。它是一个nginx反向代理,代理Notary client(镜像认证)、Docker client(镜像上传下载等)和浏览器的访问请求(Core Service)给后端的各服务;

UI(Core Service):对应启动组件harbor-ui。底层数据存储使用mysql数据库,主要提供了四个子功能:

UI:一个web管理页面ui;

API:Harbor暴露的API服务;

Auth:用户认证服务,decode后的token中的用户信息在这里进行认证;auth后端可以接db、ldap、uaa三种认证实现;

Token服务(上图中未体现):负责根据用户在每个project中的role来为每一个docker push/pull命令issuing一个token,如果从docker client发送给registry的请求没有带token,registry会重定向请求到token服务创建token。

Registry:对应启动组件registry。负责存储镜像文件,和处理镜像的pull/push命令。Harbor对镜像进行强制的访问控制,Registry会将客户端的每个pull、push请求转发到token服务来获取有效的token。

Admin Service:对应启动组件harbor-adminserver。是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候需要加载adminserver的配置;

Job Sevice:对应启动组件harbor-jobservice。负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log;

Log Collector:对应启动组件harbor-log。日志汇总组件,通过docker的log-driver把日志汇总到一起;

Volnerability Scanning:对应启动组件clair。负责镜像扫描

Notary:对应启动组件notary。负责镜像认证

DB:对应启动组件harbor-db,负责存储project、 user、 role、replication、image_scan、access等的metadata数据。

安装harbor1.8:

环境准备:

centos7 内核是3.10的

docker版本不要直接使用yum安装的低版本,需安装较高的版本,我用的是17.09.0-ce

一、配置centos7yum源:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all ; yum makecache

安装扩展源:

yum -y install epel-release

二、安装工具包:

yum install -y yum-utils device-mapper-persistent-data lvm2

三、安装docker:

卸载之前的旧版本:

yum -y remove docker docker-common

1.rpm安装:

wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-17.09.0-ce-1.el7.centos.x86_64.rpm

rpm -ivh  docker-ce-17.09.0-ce-1.el7.centos.x86_64.rpm

2.yum安装:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
yum install -y docker-ce-18.09.0-3.el7.x86_64   #你也可以指定具体版本

3.启动docker

systemctl start docker
systemctl enable docker

四、安装Docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
授予执行权限 :chmod +x /usr/local/bin/docker-compose
查看版本:docker-compose --version

五、安装、启动barbor:

wget http://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.5.tgz
tar -xf harbor-offline-installer-v1.8.5.tgz 

cd harbor ; vim harbor.yml 修改如下配置:

hostname: 172.20.10.10  #修改成本机的ip或者域名

harbor_admin_password: 123456   #设置harbor登录的密码;其他配置项默认即可。

修改完配置文件后,在的当前目录执行./install.sh,Harbor服务就会根据当前目录下的docker-compose.yml开始下载依赖的镜像,检测并按照顺序依次启动各个服务,

安装成功会看到:✔ —-Harbor has been installed and started successfully.—-

管理命令:docker-compose start | stop | restart

停止docker-compose down   |   启动docker-compose up -d

六、登录harbor:

浏览器输入配置文件中的ip或者域名访问:

http://172.20.10.10  输入默认用户名admin  密码123456

Harbor私有库部署使用

七、上传下载镜像:

新建项目,test

终端命令登录 docker login   172.20.10.10 输入用户名和密码

登录报错:

Error response from daemon: Get https://172.20.10.10/v2/: dial tcp 172.20.10.10:443: getsockopt: connection refused

排错:

find  /  -name docker.service -type f

vim /usr/lib/systemd/system/docker.service  在ExecStart=/usr/bin/dockerd后加上自己的harbor地址(ip或者域名):

ExecStart=/usr/bin/dockerd –insecure-registry 172.20.10.10

Harbor私有库部署使用
systemctl daemon-reload
systemctl restart docker

重启docker后查看docker进程会看到刚才加入的harbor地址.

再进入到harbor目录重启docker-compose,之后用docker-compose ps查看各组件状态为healthy,再登录成功!

Harbor私有库部署使用

上传镜像到harbor:

上传前要修改docker镜像的tag:

docker tag nginx:latest 172.20.10.10/test/nginx:latest  #原镜像前加上harbor的地址和项目
docker push 172.20.10.10/test/nginx:latest  上传镜像,后在harbor test项目里查看到即可。

删除本地镜像,再从harbor上拉取到即可。

八、主从harbor同步镜像

搭建另一个harbor平台172.20.10.13,作为从harbor,同步镜像。

1、拉取镜像:在从harbor仓库管理里新建目标,编辑目标(即主harbor信息:url、访问id等),测试连接。

Harbor私有库部署使用

再同步管理里新建规则,填写源Registry地址,镜像名称、tag等,注意镜像名称是test/nginx,tag是latest。

Harbor私有库部署使用

保存后,选中规则,点击同步;在项目中查看拉取到的镜像即可。push镜像在主harbor上操作类似。

更多详情可以访问 https://blog.csdn.net/qq_41918571/article/details/103792818

原创文章,作者:wz,如若转载,请注明出处:https://www.wzstyle.cn/205.html

发表评论

邮箱地址不会被公开。 必填项已用*标注

评论列表(2条)

  • 你猜 2020-02-12 01:42

    有用!