版本选择和安装包下载
harbor的版本选择:
https://github.com/goharbor/harbor/releases/tag/v2.5.3
下载离线安装包:harbor-offline-installer-v2.5.3.tgz
离线安装包和在线安装包的唯一差别是包含了harbor需要的 所有镜像(一共15个)
[root@myserver ~]# docker images | grep harbor
goharbor/harbor-exporter v2.5.3 d9a8cfa37cf8 17 months ago 87.2MB
goharbor/chartmuseum-photon v2.5.3 788b207156ad 17 months ago 225MB
goharbor/redis-photon v2.5.3 5dc5331f3de8 17 months ago 154MB
goharbor/trivy-adapter-photon v2.5.3 27798821348a 17 months ago 251MB
goharbor/notary-server-photon v2.5.3 c686413b72ce 17 months ago 112MB
goharbor/notary-signer-photon v2.5.3 a3bc1def3f94 17 months ago 109MB
goharbor/harbor-registryctl v2.5.3 942de6829d43 17 months ago 136MB
goharbor/registry-photon v2.5.3 fb1278854b91 17 months ago 77.9MB
goharbor/nginx-photon v2.5.3 91877cbc147a 17 months ago 44.3MB
goharbor/harbor-log v2.5.3 ca36fb3b68a6 17 months ago 161MB
goharbor/harbor-jobservice v2.5.3 75e6a7496590 17 months ago 227MB
goharbor/harbor-core v2.5.3 93a775677473 17 months ago 203MB
goharbor/harbor-portal v2.5.3 d78f9bbad9ee 17 months ago 52.6MB
goharbor/harbor-db v2.5.3 bd50ae1eccdf 17 months ago 224MB
goharbor/prepare v2.5.3 15102b9ebde6 17 months ago 166MB
[root@myserver ~]#
解压安装包
在linux安装目录下,解压缩安装包:
tar xvf harbor-offline-installer-v2.5.3.tgz
安装离线镜像
执行命令:docker load < harbor.v2.5.3.tar.gz
修改配置
将harbor.yml.tmpl文件复制为 harbor.yml
修改几个重要的配置:
# 配置认证服务地址,认证服务在docker客户端首次访问时,由harbor返回给docker客户端使用。
external_url: http://myserver.com
# 这个属性也用来确定认证服务地址,如果已配置external_url属性,则这个属性被忽略;否则认证地址为:http://hostname:port
# 如果已配置external_url属性,那么这里如果配置了ip地址、并且harbor的主机ip已变化,也无须处理。
# 否则需要重新执行 ./prepare来处理harbor主机ip的变化
hostname: myserver
# 我们这里仅使用http协议
http:
# 这里的端口有两个作用,1、为harbor前端代理nginx的服务端口,也即整个服务的对外端口。
# 作用2:如果没有配置external_url属性,那么harbor认证服务地址由 hostname+此处的port两个属性决定。
# 这就意味着,如果外网映射域名后的端口(比如80)和harbor内网端口(比如9000)不一致的话,必须借助external_url来配置。
port: 9000
# 暂时注释掉https相关内容
#https:
#port: 443
#certificate: /your/certificate/path
#private_key: /your/private/key/path
# 指定harbor的admin密码,当harbor初次启动后,harbor的admin密码被加密存储到postgre数据库中,后续修改此处的密码是无效的。
# 要修改admin密码,除了通过控制台修改以外,修改配置文件需要下面步骤:
# 修改docker-compose文件中:postgresql服务的端口导出:如ports: -5432:5432(5432是harbor postgresql的缺省端口)
# 使用任意客户端工具连接postgresql数据库,数据库缺省密码为 postgres / root123,数据库:registry
# 更新密码:update harbor_user set password='',salt='' where username='admin'
# 然后重新执行 ./prepare,再启动即可:docker-compose up -d
harbor_admin_password: 123456
# 指定数据存储路径
data_volume: /home/apps/harbor/data
log:
local:
# 日志存储路径
location: /home/apps/harbor/log
生成harbor各服务的配置文件
执行命令 ./prepare
启动harbor
执行命令 docker-compose up -d
或者 ./install.sh
也一样。
install.sh脚本包含了:docker load、./prepare、docker-compose up -d
3个命令。
docker客户端访问
因为我们没有为harbor配置 https 相关证书内容。所以需要为 docker客户端配置 “非安全的仓库地址”。 找到/etc/daemon.json文件,添加以下内容:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com"
],
"insecure-registries": [
"10.1.27.89:9000"
]
}
特别注意:
- json文件中的 逗号,不要多也不要少
- /etc/daemon.json文件的换行符应该为 linux环境的“\n”,而不是windows环境的“\r\n”
修改完daemon.json配置后,客户端需要重启docker:
systemctl daemon-reload
systemctl restart docker
问题1 - harbor主机ip变化
如果harbor的认证服务地址我们是通过 external_url 配置的,那么harbor主机ip地址变化时,无须对harbor配置进行调整。
否则,如果hostname配置的是 域名,那么也无须对harbor配置进行调整。
否则,如果hostname配置的是内网ip,那么就需要更改harbor配置中的hostname属性。
然后执行下面命令:
docker-compose down
./prepare
docker-compose up -d
客户端如果时通过内网ip来访问 harbor的话,也需要同时修改 daemon.json文件配置,并重启docker
问题2 - 重置harbor的admin密码
harbor的admin密码存储在 postgresql数据库中。如果忘记密码的话,可以使用SQL客户端连接postgre数据库,删除admin密码即可。
具体步骤:
- 停止harbor服务:docker-compose down
- 修改docker-compose文件中:postgresql服务的端口导出:如ports: -5432:5432(5432是harbor postgresql的缺省端口)
- 重启harbor:docker-compose up -d
- 使用任意客户端工具连接postgresql数据库,数据库缺省密码为 postgres / root123,数据库:registry
- 更新密码:update harbor_user set password='',salt='' where username='admin'
- 再次停止harbor服务:docker-compose down
- 修改harbor.yml文件中登录密码
- 重新生成配置文件 ./prepare
- 再次重启harbor:docker-compose up -d
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。