以前写过《搭建docker本地镜像仓库并提供权限校验及UI界面》文章,而后有同仁评论道这样作太复杂了,若是Harbor来搭建会更简单同时功能也更强大。因而抽时间研究了基于Harbor构建本地镜像仓库,感受Harbor的确更简单同时功能更强大,再此感谢各位同仁的建议。下面将基于Harbor构建本地镜像仓库的步骤分享出来,再次欢迎各位同仁点评。node
Harbor是VMware公司开源了企业级Registry项目, 其的目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registry为基础,额外提供了以下功能:git
以上功能是将官网的内容作了简单翻译,若是你们想深层次了解一下,能够查看Harbor官网内容。github
部署Harbor前,首先得有docker环境、docker-compose的环境,若是你们没有docker环境,能够参考我以前的一篇文章《CentOS7离线部署docker》搭建环境,对于安装docker-compose是很简单,只以下操做:docker
curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
注意:若是运行环境不能直接联外网,则能够先下载二进制包,而后手动放置到相应目录,并受权便可。服务器
有了docker环境、docker-compose的环境后,能够开始部署Harbor了,步骤以下:微信
(1)、到Github上下载目前Harbor的最新版本,它提供两种下载方式,一种是离线安装包和在线安装包,你们能够根据本身的状况下载,此处下载的是离线安装包curl
(2)、下载后,将该文件解压到/opt/harbor目录下,固然你们也能够根据本身的使用状况放到相应的目录便可测试
(3)、此处要开启https访问,因此得生成证书(注意:若是不以https访问,这一个步骤就是不须要的),操做以下:ui
mkdir /opt/harbor/certs cd /opt/harbor/certs openssl req \ -new \ -newkey rsa:4096 \ -days 365 \ -subj "/CN=192.168.208.147" \ -nodes \ -x509 \ -keyout auth.key \ -out auth.cert
注意:此处的ip地址192.168.208.147,是搭建Harbor服务所在的ip地址url
(4)、修改harbor.cfg配置文件信息,分别修改如下配置信息:
# 主机名改为本服务器的ip hostname = 192.168.208.147 # 访问的协议https ui_url_protocol = https # 因为前一步咱们本身生成了证书,因此该值改成off customize_crt = off # ssl证书的路径 ssl_cert = /opt/harbor/certs/auth.cert # ssl密钥的路径 ssl_cert_key = /opt/harbor/certs/auth.key # 设置ui系统的admin帐号的密码,默认为Harbor12345 harbor_admin_password = Adminjgyw
(5)、安装,执行:
./install.sh
(6)、执行上面的安装脚本,实质是执行docker compose来部署应用的,因此能够经过docker compose命令查看服务信息:
docker-compose ps
结果为:
(7)、访问https://192.168.208.147,若是以下:
部署完成以后,测试一下镜像的pull和push功能,首先将admin帐号登陆,并建立jgyw项目,即:
(1)、点击“新建项目”
(2)、填写项目信息,名称为jgyw,访问级别为公开,即全部人均可以pull镜像下来,即:
(3)、建立用户
(3)、为jgyw项目添加成员,同时角色为开发人员,这样能够将镜像push到该项目中,即:
(4)、push镜像
docker login 192.168.208.147 # 输入上面新建的jgyw用户名和密码便可登陆
若是此处发生以下错误:
Error response from daemon: Get https://192.168.208.147/v1/users/: x509: cannot validate certificate for 192.168.208.147 because it doesn't contain any IP SANs
则须要将/usr/lib/systemd/system/docker.service文件中ExecStart值修改成以下形式,即:
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.208.147
测试openzipkin/zipkin:2.12.1镜像
将openzipkin/zipkin:2.12.1镜像打上标签,即:
docker tag openzipkin/zipkin:2.12.1 192.168.208.147/jgyw/zipkin:2.12.1
而后执行push命令:
docker push 192.168.208.147/jgyw/zipkin:2.12.1
执行完成后,能够查到jgyw项目中就有了该镜像,即:
(5)、pull镜像
首先将本机的192.168.208.147/jgyw/zipkin:2.12.1镜像删除掉,即:
docker rmi 192.168.208.147/jgyw/zipkin:2.12.1
而后执行pull命令,即:
docker pull 192.168.208.147/jgyw/zipkin:2.12.1
镜像就拉取下来了。
以你最方便的方式关注我:
微信公众号: