先决条件:
- python2.7或以上(centos系统自带)
1. 安装docker engine v1.10或以上
命令:
$ yum install docker
2. 安装docker compose v1.6.0或以上
下载docker-compose文件:
$ curl -L "https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m)" > /usr/local/bin/docker-compose
授予docker-compose可执行权限:
$ chmod +x /usr/local/bin/docker-compose
验证安装完成:
$ docker-compose --version
3. 下载harbor源码并安装
下载harbor源码:
$ git clone https://github.com/vmware/harbor
编辑
make/harbor.cfg
,主要修改hostname(用自己的ip)、ui_url_protocol(http或者https)、admin/password和邮箱。在这里只修改hostname
和ui_url_protocol
,其它默认。其中各个配置文件参数参考官方 。## Configuration file of Harbor #The IP address or hostname to access admin UI and registry service. #DO NOT use localhost or 127.0.0.1,because Harbor needs to be accessed by external clients. hostname = 10.0.2.15 #The protocol for accessing the UI and token/notification service,by default it is http. #It can be set to https if ssl is enabled on Nginx. ui_url_protocol = http
docker-compose需要文件格式为
yaml
或者yml
,make目录下只有tpl
格式,所以:cp docker-compose.tpl docker-compose.yml
配置完成以后,直接安装就可以了。
$ ./install.sh
4. 验证安装
重新配置docker客户端。修改
/etc/sysconfig/docker
的OPTIONS
部分,添加--insecure-registry 10.0.2.15
,并重启。OPTIONS='--selinux-enabled --insecure-registry 10.0.2.15'
浏览器输入
http://10.0.2.15/
,直接进入harbor入口。
5. harbor的生命周期管理
停止harbor
$ docker-compose stop
-
$ docker-compose rm
开启harbor
$ docker-compose up -d # 进入后台执行
当然,一个
./install.sh
包括了上述的所有过程。所以,在修改了配置文件之后,直接执行./install.sh
就可以。
6. 定位错误 ##
当Harbor运行出现故障,运行一下命令来查看所有的containers是不是处于UP 状态:
$ sudo docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------------------- harbor_jobservice_1 /harbor/harbor_jobservice Up harbor_log_1 /bin/sh -c crond && rsyslo ... Up 0.0.0.0:1514->514/tcp harbor_MysqL_1 /entrypoint.sh MysqLd Up 3306/tcp harbor_proxy_1 Nginx -g daemon off; Up 0.0.0.0:443->443/tcp,0.0.0.0:80->80/tcp harbor_registry_1 /entrypoint.sh serve /etc/ ... Up 5000/tcp harbor_ui_1 /harbor/harbor_ui Up
如果container不在UP状态,在
/var/log/harbor
目录下的对应的日志文件。比如,如果harbor_ui_1
发生故障,查看日志文件docker_ui.log
。在Nginx代理或者弹性负载均衡的后台安装Harbor,如果代理已经有了相似的设置:
location /
,location /v2/
以及location /service/
,那么删除Deploy/config/Nginx/Nginx.conf
文件中的下面一行proxy_set_header X-Forwarded-Proto $scheme;