目录

  • 一、安装
  • 1、获取安装包(离线安装方式)
  • 2、安装harbor
  • 3、查看Harbor容器的运行状态
  • 4、Harbor访问测试
  • 二、Harbor配置HTTPS
  • 1、生成TSL证书
  • 2、Harbor安装后配置Https
  • 3、通过浏览器访问
  • 4、通过Docker命令来访问
  • 三、集成LDAP


一、安装

1、获取安装包(离线安装方式)

harbor版本查看:https://github.com/goharbor/harbor/tree/v2.5.3

1、用加速器下载

登录网页:https://d.serctl.com/,输入地址https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz并提交

docker 搜错 harbor的tag docker-compose harbor_Docker

2、服务器上命令下载(特别慢)
wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz

2、安装harbor

[root@test2 harbor]# pwd
/home/simon/harbor
[root@test2 harbor]# tar -xzvf 2022-08-01-14-39-49-harbor-harbor-offline-installer-v2.5.3.tgz
[root@test2 harbor]# cd harbor
[root@test2 harbor]# cp harbor.yml.tmpl harbor.yml
[root@test2 harbor]# vim harbor.yml
#修改hostname、harbor登录密码、关闭https。
hostname: harbor.test.com
harbor_admin_password: Harbor12345
#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
data_volume: /home/simon/harbor/harbor_data

完成以上操作后,保存退出

#执行安装程序
./install.sh

3、查看Harbor容器的运行状态

[root@test2 harbor]# ll
总用量 647868
drwxr-xr-x 3 root root      4096 8月  17 16:19 common
-rw-r--r-- 1 root root      3361 7月   7 14:17 common.sh
-rw-r--r-- 1 root root      6084 8月  16 19:02 docker-compose.yml
-rw-r--r-- 1 root root 663348871 7月   7 14:17 harbor.v2.5.3.tar.gz
-rw-r--r-- 1 root root      9947 8月  17 16:17 harbor.yml
-rw-r--r-- 1 root root      9917 7月   7 14:17 harbor.yml.tmpl
-rwxr-xr-x 1 root root      2500 7月   7 14:17 install.sh
-rw-r--r-- 1 root root     11347 7月   7 14:17 LICENSE
-rwxr-xr-x 1 root root      1881 7月   7 14:17 prepare
[root@test2 harbor]# 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
redis               redis-server /etc/redis.conf     Up (healthy)
registry            /home/harbor/entrypoint.sh       Up (healthy)
registryctl         /home/harbor/start.sh            Up (healthy)
[root@test2 harbor]#  
docker-compose基本命令
# 启动Harbor容器
docker-compose start
 
# 停止Harbor容器
docker-compose stop
 
# 暂停Harbor容器
docker-compose pause
 
# 继续运行Harbor容器
docker-compose unpause
 
# 重启Harbor容器
docker-compose restart
 
# 停止并删除Harbor容器,加上-v参数可以同时移除挂载在容器上的目录
docker-compose down
 
# 创建并启动Harbo容器,参数“-d”表示后台运行命令
docker-compose up -d

4、Harbor访问测试

浏览器输入http://harbor.test.com

docker 搜错 harbor的tag docker-compose harbor_Docker_02

创建用户账号并测试上传镜像

docker 搜错 harbor的tag docker-compose harbor_nginx_03


创建yzg_test用户,新建项目mytest

docker 搜错 harbor的tag docker-compose harbor_Docker_04

在docker客户端机器上设置/etc/docker/daemon.json文件,指向harbor服务器地址

#修改为http方式访问(非加密方式)
 "insecure-registries":["yzg02.com"]

上传镜像到Harbor服务器

#打标签
docker tag yzgtest:v1.1 yzg02.com/mytest/yzgtest:v1.1 

#登录Harbor服务器
docker login yzg02.com
#输入我们在harbor新创建的用户名密码进行登录
 
#上传镜像
[root@yzg img]# docker push yzg02.com/mytest/yzgtest:v1.1
The push refers to repository [yzg02.com/mytest/yzgtest]
d94c78be1352: Pushed 
v1.1: digest: sha256:303742664efb7dbcd27036a915e3bd9ff2df915d2e151c15cfe50106dd3df92a size: 527

在Harbor上可以看到我们上传的镜像

docker 搜错 harbor的tag docker-compose harbor_harbor_05

二、Harbor配置HTTPS

1、生成TSL证书

# 创建存放证书的临时目录
mkdir /data/harbor/cert
cd /data/harbor/cert
 
# 创建自签名根证书
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
 
# 查看创建的证书
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=yzg02.com
DNS.2=localhost
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-cert

2、Harbor安装后配置Https

# 进入Harbor的安装目录
cd /usr/local/harbor
 
# 停止并删除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

3、通过浏览器访问

这里首先需要将上面产生的/data/harbor/cert/ca.crt导入到浏览器的受信任的根证书中,然后就可以通过Https协议访问Harbor的Web界面了,但不能保证所有浏览器都支持。访问地址是:https://harbor.test.com

关于火狐浏览器添加证书操作:点击”三“ --> 设置 --> 隐私与安全 --> 查看证书 --> 导入证书
关于google浏览器添加证书操作:点击”三“ --> 设置 --> 隐私设置和安全性 --> 安全 --> 管理证书 --> 导入证书

4、通过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 在”配置管理“中修改”认证模式“,大概形式如下:

docker 搜错 harbor的tag docker-compose harbor_docker_06