Harbor是一款开源的Docker镜像存储仓库,其扩展了Docker Distribution,在此基础上添加了我们常用的功能,比如安全认证,RBAC用户权限管理,可视化页面操作等功能。Harbor还支持多个Harbor仓库间的相互拷贝,以实现Docker镜像仓库的高可用。这节我们在CentOS虚拟机(192.168.33.11)上搭建个单机版的Harbor体验一下。
安装Harbor
在Harbor的GitHub仓库:https://github.com/goharbor/harbor/releases下载离线版本(offline),我选择的版本是1.8.4:
下载后,将压缩包harbor-offline-installer-v1.8.4.tgz上传到192.168.33.11服务器上:
解压压缩包:
修改Harbor配置文件:
将hostname修改为宿主机IP即可:
然后执行当前目录下的install.sh脚本进行安装。
安装过程中出现如下错误:
根据https://docs.docker.com/compose/install/安装docker compose后重新执行install.sh脚本。
出现如下信息时,安装成功:
使用浏览器访问http://192.168.33.11/地址,可以看到Harbor的管理界面:
默认的用户名密码为:admin,Harbor12345,登录后:
为了后续推送镜像方便,我们需要给192.168.33.11配置域名,添加hosts解析:
1 | 192.168.33.11 docker.mrbird.cc |
创建用户和项目
在http://192.168.33.11/Harbor管理界面下新增一个用户:
然后新增一个项目:
在该项目下添加刚刚创建的mrbird用户:
接着在192.168.33.11上进行登录:
用户名和密码就是刚刚在控制台创建的mrbird用户和密码。但是登录失败了,要登录到http docker仓库,需要添加一些配置:
1 | vim /etc/docker/daemon.json |
添加如下内容:
重启docker:
1 | sudo service docker restart |
然后重新登录即可:
测试镜像推拉
拉取nginx:1.17.5镜像:
1 | docker pull nginx:1.17.5 |
打标签:
1 | docker tag nginx:1.17.5 docker.mrbird.cc/febs/nginx:1.17.5 |
标签格式为[docker仓库域名]:[项目名称]:[镜像]。
将docker.mrbird.cc/febs/nginx:1.17.5推送到Harbor:
1 | docker push docker.mrbird.cc/febs/nginx |
回到Harbor控制台,可以看到在febs项目下已经存在一个nginx镜像:
在192.168.33.12服务器上添加docker.mrbird.cc的解析,然后拉取刚刚的镜像,看看是否成功:
1 | docker pull docker.mrbird.cc/febs/nginx:1.17.5 |
拉取成功。