重要信息
Harbor的默认安装使用HTTP - 因此,您需要将该选项添加--insecure-registry到客户端的Docker守护程序中,然后重新启动Docker服务。
公证人安装
要使用公证服务安装Harbor,请在运行时添加参数install.sh:
$ sudo ./install.sh --with-notary
注意:要使用公证人进行安装,必须将参数ui_url_protocol设置为“https”。配置HTTPS请参考以下章节。
有关Notary和Docker Content Trust的更多信息,请参阅Docker的文档:https: //docs.docker.com/engine/security/trust/content_trust/
用Clair安装
要安装Harbor with Clair服务,请在运行时添加一个参数install.sh:
$ sudo ./install.sh --with-clair
有关Clair的更多信息,请参阅Clair的文档:https: //coreos.com/clair/docs/2.0.1/
注意:如果要安装Notary和Clair,则必须在同一命令中指定两个参数:
$ sudo ./install.sh --with-notary --with-clair
有关如何使用港口的信息,请参阅港口用户指南。
使用HTTPS访问配置港口
harbor不附带任何证书,默认情况下,使用HTTP提供请求。虽然这使得设置和运行相对简单 - 特别是对于开发或测试环境 - 不建议在生产环境中使用。要启用HTTPS,请参阅使用HTTPS访问配置港口。
管理Harbor的生命周期
您可以使用docker-compose来管理Harbor的生命周期。一些有用的命令如下所列(必须与docker-compose.yml在同一目录中运行)。
停止Harbor:
$ sudo docker-compose stop
Stopping nginx ... done
Stopping harbor-jobservice ... done
Stopping harbor-ui ... done
Stopping harbor-db ... done
Stopping registry ... done
Stopping harbor-log ... done
停止后重新启动Harbor:
$ sudo docker-compose start
Starting log ... done
Starting ui ... done
Starting mysql ... done
Starting jobservice ... done
Starting registry ... done
Starting proxy ... done
要更改Harbor的配置,请首先停止现有的Harbor实例并进行更新harbor.cfg。然后运行prepare脚本来填充配置。最后重新创建并启动Harbor的实例:
$ sudo docker-compose down -v
$ vim harbor.cfg
$ sudo prepare
$ sudo docker-compose up -d
删除Harbor的容器,同时保留image数据和Harbor的数据库文件在文件系统上:
$ sudo docker-compose down -v
删除Harbor的数据库和image数据(为了干净的重新安装):
$ rm -r / data / database
$ rm -r / data / registry
管理Harbor的安全生产周期
当Harbor与Notary安装时,docker-compose.notary.ymldocker-compose命令需要一个额外的模板文件。用于管理Harbor生命周期的码头组合命令是:
$ sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml [ up|down|ps|stop|start ]
例如,如果要在harbor.cfg配有Notary的情况下更改配置并重新部署Harbor,则应使用以下命令:
$ sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml down -v
$ vim harbor.cfg
$ sudo准备 - 公证
$ sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml up -d
在与Clair安装时管理Harbor的生命周期
当Harbor与Clair一起安装时,docker-compose.clair.ymldocker-compose命令需要一个额外的模板文件。用于管理港口生命周期的码头组合命令是:
$ sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.clair.yml [ up|down|ps|stop|start ]
例如,如果要在harbor.cfg使用Clair安装时更改配置并重新部署Harbor,则应使用以下命令:
$ sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.clair.yml down -v
$ vim harbor.cfg
$ sudo prepare --with-clair
$ sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.clair.yml up -d
管理Harbour的生命周期,当与Notary和Clair一起安装时
如果您已经安装了Notary和Clair,那么您应该在docker-compose中编写两个组件并准备命令:
$ sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml -f ./docker-compose.clair.yml down -v
$ vim harbor.cfg
$ sudo准备 - 与公证--with-clair
$ sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml -f ./docker-compose.clair.yml up -d
有关docker-compose的更多信息,请查看Docker Compose命令行参考。
持久性数据和日志文件
默认情况下,注册表数据将保留在主机的/data/目录中。即使拆除和/或重建港湾的集装箱,这些数据也保持不变。
另外,Harbor使用rsyslog收集每个容器的日志。默认情况下,这些日志文件存储在/var/log/harbor/目标主机上的目录中进行故障排除。
配置在自定义端口上监听harbor
默认情况下,对于admin portal和docker命令,Harbor将在端口80(HTTP)和443(如果已配置HTTPS)上进行监听,则可以使用自定义方式进行配置。
对于HTTP协议
1.修改docker-compose.yml
将第一个“80”替换为自定义的端口,例如8888:80。
proxy:
image: library/nginx:1.11.5
restart: always
volumes:
- ./config/nginx:/etc/nginx
ports: - 8888:80
- 443:443
depends_on: - mysql
- registry
- ui
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "proxy"
2.修改ports.cfg,将端口添加到参数“hostname”
hostname = 192.168.0.2:8888
3.重新部署港口参考上一节“管理港口的生命周期”。
对于HTTPS协议
按照本指南,启用港口中的HTTPS 。
2.修改docker-compose.yml
将第一个“443”替换为自定义的端口,例如8888:443。
proxy:
image: library/nginx:1.11.5
restart: always
volumes:
- ./config/nginx:/etc/nginx
ports:
- 80:80
- 8888:443
depends_on:
- mysql
- registry
- ui
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "proxy"
3.修改ports.cfg,将端口添加到参数“hostname”
hostname = 192.168.0.2:8888
4.重新部署港口参考上一节“管理港口的生命周期”。
性能调优
默认情况下,Harbor将Clair容器的CPU使用量限制为150000,并避免使用所有CPU资源。这在docker-compose.clair.yml文件中定义。您可以根据硬件配置进行修改。
故障排除
当Harbour不能正常工作时,请运行以下命令,查看Harbor的所有容器是否处于UP状态:
$ sudo docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------------------
harbor-db docker-entrypoint.sh mysqld Up 3306/tcp
harbor-jobservice /harbor/harbor_jobservice Up
harbor-log /bin/sh -c crond && rsyslo ... Up 127.0.0.1:1514->514/tcp
harbor-ui /harbor/harbor_ui Up
nginx nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
registry /entrypoint.sh serve /etc/ ... Up 5000/tcp
如果容器未处于UP状态,请检查目录中该容器的日志文件/var/log/harbor。例如,如果容器harbor-ui没有运行,则应该查看日志文件ui.log。
2,当设置港湾后面的nginx的代理或弹性负载均衡,寻找线下,在common/templates/nginx/nginx.http.conf从部分删除它,如果代理已经有类似的设置:location /,location /v2/和location /service/。
proxy_set_header X-Forwarded-Proto $scheme;
并重新部署Harbor参考上一节“管理Harbor的生命周期”。