Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
安装Harbor就可实现docker registry(私服)功能,所以不用额外自己拉镜像搭建,相反,如果搭建了,启动Harbor会提示错误。
安装Harbor必须要求docker版本大于17.0,如果版本过低,请参考《卸载并重装docker》完成重装!
本文是基于docker-compose方式进行启动harbor,所以需要先安装docker-compose,请参考《如何安装docker-compose》。
下载Harbor
将harbor-offline-installer-v1.10.4.tgz上传到/root。
在root目录下解压:
$ tar -zxvf harbor-offline-installer-v1.10.4.tgz
解压完成后,在/root下会有一个harbor目录:
进入harbor目录,编辑harbor.yml文件:
$ cd /root/harbor
$ vi harbor.yml
hostname可以改成域名,也可以改成虚拟机ip;
http port即为docker私服端口;
没有配置https必须要注释掉https配置;
harbor_admin_password为图形化界面管理员密码;
修改docker镜像配置:
$ vi /etc/docker/daemon.json
{
"registry-mirrors":
[
"http://192.168.0.130",
"http://hub-mirror.c.163.com",
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
],
"insecure-registries": ["192.168.0.130"]
}
只有配置了insecure-registries,此地址才能用http访问,否则只能以https形式。
修改docker服务配置:
$ vi /usr/lib/systemd/system/docker.service
添加(方便docker-maven-plugin打包镜像推送):
-H tcp://0.0.0.0:2375 \
-H unix://var/run/docker.sock \
启动Harbor:
$ cd /root/harbor
$ ./install.sh
启动完成之后就可以用浏览器访问:
界面输入192.168.0.130
账户名:admin
密码:Harbor12345
主界面:
yl项目是我自己添加的,新建一个项目就是。
推拉镜像
我们本地有一个mysql的镜像:
推到私服里面需要先打tag,然后再push。
注意repository的名称需要为格式为:HOST[:port]/{project}/{image}
HOST表示主机,port表示端口,端口不是必要的,project表示在Harbor中项目的名称,images表示镜像名称。
打tag
$ docker tag mysql:5.7 192.168.0.130/yl/mysql:5.7
登录Harbor
$ docker login 192.168.0.130
push镜像
$ docker push 192.168.0.130/yl/mysql:5.7
完成之后就能在界面上看到镜像了。
pull镜像
$ docker pull 192.168.0.130/yl/mysql:5.7
Harbor用户管理
界面上可以新建用户,在新建项目时,默认会将admin用户分配到项目中,所以能访问项目,但是如果新建的用户没有加入到项目,name这个用户是没有权限对这个项目进行操作的,比如推拉镜像。
Harbor常用命令
Harbor初次安装是用install.sh安装,它会下载自己运行需要的镜像。
针对harbor服务的启动和停止,可以使用以下docker-compose命令:
- 停止服务
$ docker-compose down
- 启动服务
$ docker-compose up [-d]
-d表示后台启动,[]表示参数不必要。
- 查看已运行服务
$ docker-compose ps