版本选择和安装包下载

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 -d3个命令。

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

sswhsz
168 声望4 粉丝