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

前言:

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


环境说明:

主机名
操作系统版本
IP地址
docker版本docker-compose版本
harbor版本
说明
ubuntu1604Ubuntu 16.04.5172.27.9.3118.09.21.23.2v1.7.4-ce6a6237harbor服务器
docker02Ubuntu 16.04.5172.27.9.3818.09.2/
/
docker主机
centos7
centos7
172.27.9.181/
/
/
NFS服务器


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

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


1.Harbor安装前准备

安装docker-compose

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

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


解压

root@ubuntu1604:/opt# tar -zxvf harbor-offline-installer-v1.7.4.tgz

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


2.NFS配置

安装nfs软件

root@ubuntu1604:~# apt-get install nfs-common -y


挂载

root@ubuntu1604:~# showmount -e 172.27.9.181 
root@ubuntu1604:~# mkdir /data
root@ubuntu1604:~# mount -t nfs 172.27.9.181:/nfs /data/

图片.png

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


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


3.生成证书

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

创建证书存放目录

root@ubuntu1604:~# mkdir -p /data/cert && cd /data/cert


创建 CA 根证书

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"

图片.png


生成证书签名

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"

图片.png

访问域名设置为loong576.com


生成主机证书

root@ubuntu1604:/data/cert# openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out loong576.com.crt

图片.png


查看证书

图片.png


拷贝证书

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

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文件

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

root@ubuntu1604:/opt/harbor# ./install.sh

图片.png

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

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

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

图片.png

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


5.Harbor测试

新建项目myproject

图片.png

新建项目myproject并设置为公开


拉取镜像

从Docker Hub拉取镜像centos:7

root@ubuntu1604:~# docker pull centos:7


标记镜像

root@ubuntu1604:~# docker tag centos:7 loong576.com/myproject/centos7

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


登陆仓库

root@ubuntu1604:/etc/docker/certs.d/loong576.com# docker login loong576.com

图片.png

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


推送镜像

root@ubuntu1604:~# docker push loong576.com/myproject/centos7


页面查看镜像

图片.png


拉取镜像

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

root@docker02:~# docker pull loong576.com/myproject/centos7

图片.png


查看拉取的镜像

root@docker02:~# docker image ls

图片.png


删除镜像

图片.png

直接web页面删除镜像


日志查看

图片.png


至此完成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/





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章