以下是在虚拟机VMware环境进行部署测试
1.容器管理
首先创建harbor的目录便于存放harbor的压缩包
mkdir /opt/harbor &&cd /opt/harbor
2.下载harbor
wget https://github.com/goharbor/harbor/releases/download/v2.9.1/harbor-offline-installer-v2.9.1.tgz
下载完成之后进行解压并指定解压目录在/usr/local/下面
tar xf harbor-offline-installer-v2.9.1.tgz -C /usr/local/
3.下载docker-compose
(由于harbor是基于docker-compose管理的)
yum -y install epel-release.noarch (下载epel源)
yum install -y docker-compose (下载docker-compose)
docker-compose version (检查有没有安装好)
4.安装harbor
注意事项:
新版harbor的文件目录里面 只有harbor.yml.tmpl文件 没有harbor.yml文件,由于harbor.yml.tmpl这个文件内容和本来应该有harbor.yml这个文件的内容是一样的,所以我们直接先进到/usr/local/harbor目录里面
cd /usrl/local/harbor
然后复制一份成harbor.yml
cp harbor.yml.tmpl harbor.yml
复制完成后就就开始修改你的harbor.yml文件
5.修改配置文件
[任务一:修改hostname 修改为你的ip或者域名] !!!修改为你的域名的话 除了你的虚拟机/etc/hosts里面要加一条你的域名之外 你想Windows访问的话也需要增加这个域名 不然Windows只能满世界找你的域名网页在哪,你想Windows增加域名的话就在C:\Windows\System32\drivers\etc 这个路径下的hosts文件修改 因为没权限不能直接修改 你就把这个文件拉到桌面然后修改了之后拉上去,
[任务二:修改你的harbor_admin_password: 后面跟你要更改的密码 ]
[任务三: 把下面的7-10 或者12-18 这两段根据你的需求进行注释,你如果有ssl证书你就把7-10的http注释掉 你如果没有就注释12-18,相当于把http或者https选一个屏蔽掉]
前20行代码 (这是有ssl证书的代码块 我把http注释掉了)
# 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: www.csdn.com
# http related config
#http:
# port for http, default is 80. If https enabled, this port will redirect to https port
# port: 80
# https related config
https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /data/ca/harbor-ca.crt
private_key: /data/ca/harbor-ca.key
彩蛋:如果需要自己的ssl证书(不被公网认定)就需要执行以下命令
mkdir /data/ca && cd /data/ca (创建一个存放ssl证书的目录)
openssl genrsa -out /data/ca/harbor-ca.key
openssl req -x509 -new -nodes -key /data/ca/harbor-ca.key -subj "/CN=harbor.linux.com" -days 7120 -out /data/ca/harbor-ca.crt
各个参数列表:
--------------------------------------------------------------------------------------------------------------------------------
-
genrsa 生成RSA私钥
-
CSR 证书签名请求
-
CRT 生成自签名证书
-
openssl req 命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书。
-
x509是一个功能很丰富的证书处理工具。可以用来显示证书的内容,转换其格式,给CSR签名等X.509证书的管理工作
-
-new 说明生成证书请求文件
-
-key 指定已有的秘钥文件生成秘钥请求,只与生成证书请求选项-new配合。
-
-newkey -newkey是与-key互斥的,-newkey是指在生成证书请求或者自签名证书的时候自动生成密钥,
-
然后生成的密钥名称由-keyout参数指定。当指定newkey选项时,后面指定rsa:bits说明产生
-
rsa密钥,位数由bits指定。 如果没有指定选项-key和-newkey,默认自动生成秘钥。
-
-
-out -out 指定生成的证书请求或者自签名证书名称
-
-config 默认参数在ubuntu上为 /etc/ssl/openssl.cnf, 可以使用-config指定特殊路径的配置文件
-
-nodes 如果指定-newkey自动生成秘钥,那么-nodes选项说明生成的秘钥不需要加密,即不需要输入passphase.
-
-batch 指定非交互模式,直接读取config文件配置参数,或者使用默认参数值
-
-----------------------------------------------------------------------------------------------------------------
然后
mkdir -pv /etc/docker/certs.d/harbor.linux.com/
cp /data/ca/harbor-ca.crt /etc/docker/certs.d/harbor.linux.com/ 把ssl证书放在对应的目录下
那么ssl证书的存放位置也要填写填写到docker-compose.yml文件里面 也就是12-18行https的那一列
https:
14 # https port for harbor, default is 443
15 port: 443
16 # The path of cert and key files for nginx
17 certificate: /data/ca/harbor-ca.crt
18 private_key: /data/ca/harbor-ca.key
修改完成后保存
执行安装脚本
如果你没有ssl证书 此时你就可以直接在/usr/local/harbor目录里面执行脚本了
./install.sh 要等一会儿
docker-compose start
检查运行成功没
docker-compose ps
[root@docker01 harbor]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
287136c60b95 goharbor/nginx-photon:v2.9.1 "nginx -g 'daemon of…" 38 seconds ago Up 37 seconds (healthy) 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx
66a07d42818c goharbor/harbor-jobservice:v2.9.1 "/harbor/start.sh" 42 seconds ago Up 38 seconds harbor-jobservice
e4bb415fd236 goharbor/harbor-portal:v2.9.1 "nginx -g 'daemon of…" 42 seconds ago Up 38 seconds (healthy) 80/tcp harbor-portal
1530c4b4c604 goharbor/harbor-core:v2.9.1 "/harbor/start.sh" 43 seconds ago Up 41 seconds (healthy) harbor-core
adc160874fef goharbor/redis-photon:v2.9.1 "docker-entrypoint.s…" 44 seconds ago Up 42 seconds 6379/tcp redis
300165f93782 goharbor/harbor-db:v2.9.1 "/entrypoint.sh post…" 44 seconds ago Up 42 seconds (healthy) 5432/tcp harbor-db
a81c3d53eb2e goharbor/registry-photon:v2.7.1-patch-2819-v2.9.1 "/entrypoint.sh /etc…" 44 seconds ago Up 43 seconds (healthy) 5000/tcp registry
1a7cf72c6433 goharbor/harbor-registryctl:v2.9.1 "/harbor/start.sh" 44 seconds ago Up 42 seconds (healthy) registryctl
6be2b10b733d goharbor/harbor-log:v2.9.1 "/bin/sh -c /usr/loc…" 45 seconds ago Up 44 seconds (healthy) 127.0.0.1:1514->10514/tcp harbor-log
成功
错误列表:
如果报错network harbor_harbor was found but has incorrect label com.docker.compose.network set to ""就执行以下命令
docker network ls 一下查看有没有多余的网络
docker network rm harbor_harbor 把这个网络删除了
删除之后重新执行安装脚本./install.sh
然后到网页里面打开http://域名或者你的ip
用户名admin 密码你自己设置的,你要忘了就去harbor.yml里面去找你的密码
在启动到服务后 登陆访问页面报错表示核心服务不可用 有可能是
/data/database/ 里面有个目录 叫做pg13 如果没有全是散的文件就创建pg13然后把散的文件放到这个目录里面 最后pg13给权限750
然后重新启动一下harbor然后就可以进入了