Harbor 安装环境说明 环境名称版本备注 Linux发行版18.04.5 LTS (Bionic Beaver)暂无docker-ceDocker version 20.10.7, build 20.10.7-0ubuntu1~18.04.1apt install docker.ro,数据目录/data/dockerdocker-composedocker-compose ve
Harbor 安装环境说明
环境名称 版本 备注 Linux发行版 18.04.5 LTS (Bionic Beaver) 暂无 docker-ce Docker version 20.10.7, build 20.10.7-0ubuntu1~18.04.1 apt install docker.ro,数据目录/data/docker docker-compose docker-compose version 1.24.0, build 0aa59064 https://hkzww.com/ubuntu18-04%E4%B8%8B%E5%AE%89%E8%A3%85docker-compose-%E6%9C%80%E6%96%B0%E7%89%88.html Harbor 2.3.2 最新2021/8/31 harbor安装方式 在线安装 暂无 harbor安装位置 /usr/local/harbor-2.3.2 暂无 harbor数据目录 /data/harbor 暂无安装 Harbor
Harbor 的在线或者离线安装程序下载地址可以从这里获取。
# 使用在线安装程序 wget -P /usr/local wget https://github.com/goharbor/harbor/releases/download/v2.3.2/harbor-online-installer-v2.3.2.tgz # 解压下载文件 tar zxf /usr/local/harbor-online-installer-v2.3.2.tgz -C /usr/local/ # 重命名 cd /usr/local mv harbor harbor-2.3.2 # 修改配置文件,根据自己的需求进行修改 cd harbor-2.3.2 cp harbor.yml.tmpl harbor.yml # harbor.yml中按需修改或添加如下内容 ## 修改hostname hostname: harbor.test.com ## 修改admin密码 harbor_admin_password: xxxxxxx ## 暂时关闭https #https: # https port for harbor, default is 443 # port: 443 # The path of cert and key files for nginx # certificate: /your/certificate/path # private_key: /your/private/key/path ## 添加禁止用户自注册 self_registration: off ## 设置只有管理员可以创建项目(可选) # project_creation_restriction: adminonly ## 指定数据目录,若无则手动创建该目录 data_volume: /data/harbor完成以上操作,保存退出!
# 执行安装脚本 bash /usr/local/harbor-2.3.2/install.sh最终目录结构:
root@harbor:/usr/local/harbor-2.3.2# ll total 60 drwxr-xr-x 3 root root 4096 Aug 31 06:41 ./ drwxr-xr-x 11 root root 4096 Aug 31 03:27 ../ drwxr-xr-x 3 root root 4096 Aug 31 03:27 common/ -rw-r--r-- 1 root root 3361 Aug 18 08:53 common.sh -rw-r--r-- 1 root root 6066 Aug 31 03:34 docker-compose.yml -rw-r--r-- 1 root root 7919 Aug 31 03:34 harbor.yml -rw-r--r-- 1 root root 7840 Aug 18 08:53 harbor.yml.tmpl -rwxr-xr-x 1 root root 2500 Aug 18 08:53 install.sh* -rw-r--r-- 1 root root 11347 Aug 18 08:53 LICENSE -rwxr-xr-x 1 root root 1881 Aug 18 08:53 prepare*查看Harbor容器的运行状态
root@harbor:/usr/local/harbor-2.3.2# docker-compose ps Name Command State Ports -------------------------------------------------------------------------------------------------------- harbor-core /harbor/entrypoint.sh Up (healthy) harbor-db /docker-entrypoint.sh 96 13 Up (healthy) harbor-jobservice /harbor/entrypoint.sh Up (healthy) harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:1514->10514/tcp harbor-portal nginx -g daemon off; Up (healthy) nginx nginx -g daemon off; Up (healthy) 0.0.0.0:80->8080/tcp,:::80->8080/tcp redis redis-server /etc/redis.conf Up (healthy) registry /home/harbor/entrypoint.sh Up (healthy) registryctl /home/harbor/start.sh Up (healthy)docker-compose 基本命令
# 启动Harbor容器 docker-compose start # 停止Harbor容器 docker-compose stop # 重启Harbor容器 docker-compose restart # 停止并删除Harbor容器,加上-v参数可以同时移除挂载在容器上的目录 docker-compose down # 创建并启动Harbo容器,参数“-d”表示后台运行命令 docker-compose up -dHarbor测试访问
浏览器输入以下地址或者域名访问Harbor的Web界面,账号密码:admin/xxxxxxxx
http://harbor.test.com
生成TLS证书,用于Harbor配置Https
# 创建存放证书的临时目录 mkdir /data/harbor/cert cd !$ # 创建自签名根证书 openssl genrsa -out ca.key 4096 openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.test.com" -key ca.key -out ca.crt # 如有以下报错: Can't load /root/.rnd into RNG 140496635077056:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/root/.rnd # 解决方法 cd /root openssl rand -writerand .rnd # 查看创建的证书 ca.crt ca.key # 产生证书签名请求 openssl genrsa -out harbor.test.com.key 4096 openssl req -sha512 -new -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.test.com" -key harbor.test.com.key -out harbor.test.com.csr # 查看证书 ca.crt ca.key harbor.test.com.csr harbor.test.com.key # 为Registry主机产生证书 cat > v3.ext <<-EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1=harbor.test.com DNS.2=harbor DNS.3=harbor.test.com EOF openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in harbor.test.com.csr -out harbor.test.com.crt openssl x509 -inform PEM -in harbor.test.com.crt -out harbor.test.com.cert # 查看证书 ca.crt ca.key ca.srl v3.ext harbor.test.com.cert harbor.test.com.csr harbor.test.com.key harbor.test.com.crt # 创建Harbor的证书目录 mkdir /data/harbor/harbor-cert # 拷贝harbor-registry证书到Harbor的证书目录 cp harbor.test.com.crt /data/harbor/harbor-cert cp harbor.test.com.key /data/harbor/harbor-certHarbor安装后配置Https
# 进入Harbor的安装目录 cd /usr/local/harbor-2.3.2 # 停止并删除Harbor容器,加上-v参数可以同时移除挂载在容器上的目录 docker-compose down # 修改harbor.yml配置文件 ## 打开https配置 # https related config https: # https port for harbor, default is 443 port: 443 # The path of cert and key files for nginx certificate: /data/harbor/harbor-cert/harbor.test.com.crt private_key: /data/harbor/harbor-cert/harbor.test.com.key # 重新生成配置文件 ./prepare # 让Docker客户端默认使用Https协议访问Registry,需要去掉“insecure-registries”相关配置项 # 查看daemon.json文件中是否有"insecure-registries":["harbor.test.com"],如果有则将其删除掉 # 重新加载Docker的配置文件 systemctl daemon-reload # 重启Docker systemctl restart docker # 创建并启动Harbor容器 docker-compose up -d测试通过Https协议访问Harbor
通过浏览器访问
这里首先需要将上面产生的/data/harbor/cert/ca.crt导入到浏览器的受信任的根证书中,然后就可以通过Https协议访问Harbor的Web界面了,但不能保证所有浏览器都支持。访问地址是:https://harbor.test.com
关于火狐浏览器添加证书操作:点击”三“ --> 设置 --> 隐私与安全 --> 查看证书 --> 导入证书
关于google浏览器添加证书操作:点击”三“ --> 设置 --> 隐私设置和安全性 --> 安全 --> 管理证书 --> 导入证书
通过Docker命令来访问
# 在harbor主机或内网其他机器上 mkdir -p /etc/docker/certs.d/harbor.test.com cp harbor.test.com.cert /etc/docker/certs.d/harbor.test.com cp harbor.test.com.key /etc/docker/certs.d/harbor.test.com cp ca.crt /etc/docker/certs.d/harbor.test.com # 无需重启docker即可生效 docker login harbor.test.com集成LDAP
可直接登入 harbor 在”配置管理“中修改”认证模式“,大概形式如下:
参考文档
-
Harbor仓库配置https访问
- 离线安装 Harbor v2