前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker实践(二):Harbor搭建私有Registry

Docker实践(二):Harbor搭建私有Registry

作者头像
loong576
修改2019-10-23 10:45:19
8780
修改2019-10-23 10:45:19
举报
文章被收录于专栏:运维ABC

前言:

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,由VMware中国研发团队负责开发的开源企业级Registry项目。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全,提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中,确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

环境说明:

主机名

操作系统版本

IP地址

docker版本

docker-compose版本

harbor版本

说明

ubuntu1604

Ubuntu 16.04.5

172.27.9.31

18.09.2

1.23.2

v1.7.4-ce6a6237

harbor服务器

docker02

Ubuntu 16.04.5

172.27.9.38

18.09.2

/

/

docker主机

centos7

centos7

172.27.9.181

/

/

/

NFS服务器

ubuntu安装详见Ubuntu16.04.5以lvm方式安装全记录

docker安装详见:Ubuntu16.04安装Docker

1.Harbor安装前准备

安装docker-compose

代码语言:txt
复制
root@ubuntu1604:/# sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
root@ubuntu1604:/# chmod +x /usr/local/bin/docker-compose

Docker Compose是Docker官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用。

测试docker-compose

代码语言:txt
复制
root@ubuntu1604:~# docker-compose --version

介质下载

离线安装:https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.4.tgz

在线安装:https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.4.tgz

解压

代码语言:txt
复制
root@ubuntu1604:/opt# tar -zxvf harbor-offline-installer-v1.7.4.tgz

将介质上传至/opt目录并解压

2.NFS配置

安装nfs软件

代码语言:txt
复制
root@ubuntu1604:~# apt-get install nfs-common -y

挂载

代码语言:txt
复制
root@ubuntu1604:~# showmount -e 172.27.9.181 
root@ubuntu1604:~# mkdir /data
root@ubuntu1604:~# mount -t nfs 172.27.9.181:/nfs /data/

新建挂载点/data并挂载nfs共享目录/nfs,/data为harbor默认的数据文件路径,所有镜像文件都保存在该文件中。

NFS配置详见:Centos7下NFS服务器搭建及客户端连接配置

3.生成证书

为实现https方式访问,需生成证书

创建证书存放目录

代码语言:txt
复制
root@ubuntu1604:~# mkdir -p /data/cert && cd /data/cert

创建 CA 根证书

代码语言:txt
复制
root@ubuntu1604:/data/cert# openssl req  -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt -subj "/C=CN/L=zhejiang/O=lisea/CN=harbor-registry"

生成证书签名

代码语言:txt
复制
root@ubuntu1604:/data/cert# openssl req -newkey rsa:4096 -nodes -sha256 -keyout loong576.com.key -out server.csr -subj "/C=CN/L=zhejiang/O=lisea/CN=loong576.com"

访问域名设置为loong576.com

生成主机证书

代码语言:txt
复制
root@ubuntu1604:/data/cert# openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out loong576.com.crt

查看证书

拷贝证书

将证书拷贝至所有需要登录Harbor的docker主机

代码语言:txt
复制
root@ubuntu1604:~# mkdir -p /etc/docker/certs.d/loong576.com
root@ubuntu1604:~# cp /data/cert/loong576.com.crt /etc/docker/certs.d/loong576.com/ca.crt

新建目录/etc/docker/certs.d/loong576.com,将证书loong576.com.crt拷贝并重命名为ca.crt

4.Harbor安装

配置Harbor

修改harbor.cfg文件

代码语言:txt
复制
root@ubuntu1604:~# view /opt/harbor/harbor.cfg
hostname = loong576.com
ui_url_protocol = https
ssl_cert = /data/cert/loong576.com.crt
ssl_cert_key = /data/cert/loong576.com.key

设置域名为loong576.com(/etc/hosts文件已新增配置:172.27.9.31    loong576.com),访问方式为https,证书为之前生成的证书

安装Harbor

代码语言:txt
复制
root@ubuntu1604:/opt/harbor# ./install.sh

安装共有4步,最后会提示安装成功并告知访问地址。

若以后想修改配置文件harbor.cfg,可按如下步骤执行:

代码语言:txt
复制
root@ubuntu1604:/opt/harbor#  docker-compose down -v
root@ubuntu1604:/opt/harbor#  vim harbor.cfg
root@ubuntu1604:/opt/harbor#  ./prepare 
root@ubuntu1604:/opt/harbor#  docker-compose up -d

访问Harbor

访问地址:https://loong576.com

浏览器会提示不安全的证书,因为我们是自己当CA机构,所以浏览器会不信任,添加信任即可。默认密码是admin/Harbor12345。浏览器所在电脑记得编辑host文件,新增:172.27.9.31    loong576.com

5.Harbor测试

新建项目myproject

新建项目myproject并设置为公开

拉取镜像

从Docker Hub拉取镜像centos:7

代码语言:txt
复制
root@ubuntu1604:~# docker pull centos:7

标记镜像

代码语言:txt
复制
root@ubuntu1604:~# docker tag centos:7 loong576.com/myproject/centos7

将镜像标记为loong576.com/myproject,推送时Docker会将其解释为仓库的位置

登陆仓库

代码语言:txt
复制
root@ubuntu1604:/etc/docker/certs.d/loong576.com# docker login loong576.com

密码会被保存,下次会免密登陆。

推送镜像

代码语言:txt
复制
root@ubuntu1604:~# docker push loong576.com/myproject/centos7

页面查看镜像

拉取镜像

在docker02(172.27.9.38)拉取镜像centos7,在做此操作前需进行前文的“拷贝证书”操作。

代码语言:txt
复制
root@docker02:~# docker pull loong576.com/myproject/centos7

查看拉取的镜像

代码语言:txt
复制
root@docker02:~# docker image ls

删除镜像

直接web页面删除镜像

日志查看

至此完成Harbor私有仓库搭建。

6.后续

可安装Harborclient工具,用命令行方式进行管理。

Harbor通过Web界面可以方便地管理用户、租户以及镜像仓库等资源,但是缺乏开发人员更喜爱的命令行管理工具,Harborclient是Harbor的第三方扩展开源工具,正弥补Harbor不足,它适合开发和运维人员管理镜像仓库、项目等资源。

安装及使用:https://github.com/int32bit/python-harborclient/blob/master/README.zh.md

本文参考:

https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

https://docs.docker.com/registry/insecure/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档