Harbor 是一个开源的本地部署的容器镜像注册中心, 带访问权限控制, 以及管理界面. 作用类似于 Java 中 Maven 的私有仓库 Nexus, 用于配合 Jenkins 在部署容器到 K8s 时提供镜像源, 加快创建速度, 同时其内网属性也能在很大程度上保证私有项目的代码安全.
准备工作
目标服务器为 Ubuntu18.04 Server, 已经安装并配置好 Docker.
Harbor 项目地址: https://github.com/goharbor/harbor
Harbor 安装说明:
下载 offline 安装包: https://github.com/vmware/harbor/releases
安装说明
Harbor 支持 K8s 部署, 但一般还是建议单独部署.
Harbor 的安装, 实际上是将一系列的容器安装到本地的 docker, 其中包含了 Nginx, PostgreSQL, Redis 以及 log 服务. 而 offline 安装包中已经包含这些容器镜像, 避免安装时再下载.
解压后修改 harbor.YAML, 默认只需要修改 hostname 为当前主机 IP
- wget https://github.com/goharbor/harbor/releases/download/v1.9.4/harbor-offline-installer-v1.9.4.tgz
- tar zxvf harbor-offline-installer-v1.9.4.tgz
- cd harbor/
vi harbor.YAML
安装
sudo ./install.sh
安装之后, 就可以用 harbor.YAML 中配置的 hostname 和端口来访问了. 默认的用户是 admin / Harbor12345
安装后启动的容器
- $ docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- c045e8393514 goharbor/harbor-jobservice:v1.9.4 "/harbor/harbor_jobs..." 7 minutes ago Up 7 minutes (healthy) harbor-jobservice
- 9a3d65e5cdb0 goharbor/nginx-photon:v1.9.4 "nginx -g'daemon of..." 7 minutes ago Up 7 minutes (healthy) 0.0.0.0:10080->8080/tcp nginx
- 44fc38b22688 goharbor/harbor-core:v1.9.4 "/harbor/harbor_core" 7 minutes ago Up 7 minutes (healthy) harbor-core
- 4224ea0eb383 goharbor/harbor-registryctl:v1.9.4 "/harbor/start.sh" 8 minutes ago Up 7 minutes (healthy) registryctl
- 772f94b49468 goharbor/registry-photon:v2.7.1-patch-2819-2553-v1.9.4 "/entrypoint.sh /etc..." 8 minutes ago Up 7 minutes (healthy) 5000/tcp registry
- 795c283eebcd goharbor/Redis-photon:v1.9.4 "redis-server /etc/r..." 8 minutes ago Up 7 minutes (healthy) 6379/tcp Redis
- a7050eeaf864 goharbor/harbor-db:v1.9.4 "/docker-entrypoint...." 8 minutes ago Up 8 minutes (healthy) 5432/tcp harbor-db
- 0159e6e4a9ec goharbor/harbor-portal:v1.9.4 "nginx -g'daemon of..." 8 minutes ago Up 7 minutes (healthy) 8080/tcp harbor-portal
- 2fcc5620820a goharbor/harbor-log:v1.9.4 "/bin/sh -c /usr/loc..." 8 minutes ago Up 8 minutes (healthy) 127.0.0.1:1514->10514/tcp harbor-log
Harbor 可以使用外部的 PostgreSQL, 可以使用外部存储, 可以使用云存储 azure, gcs, s3, swift, oss, 可以将日志推送到外部 syslog 服务器.
修改配置
修改配置需要先停止 Harbor 服务, 再修改 harbor.YAML, 最后启动 Harbor 服务
- # 停止服务
- sudo docker-compose down -v
- # 修改
vi harbor.YAML
- # 应用
- sudo ./prepare
- # 启动服务
- sudo docker-compose up -d
来源: http://www.bubuko.com/infodetail-3360032.html