侧边栏壁纸
博主头像
CYC的个人博客博主等级

学习使人进步

  • 累计撰写 91 篇文章
  • 累计创建 11 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

搭建Harbor镜像管理站点及出现的问题

Administrator
2024-01-30 / 0 评论 / 0 点赞 / 122 阅读 / 2586 字

搭建Harbor镜像管理站点及出现的问题

相关资料:

链接:https://pan.baidu.com/s/1y5ZXekE1WjejXSZhvCUuSQ

提取码:aabb


##############harbor环境################
#为harbor生成本地证书
注:如果采用http配置则不做证书设置
mkdir /data/ssl -p
cd /data/ssl 


生成ca证书:
openssl genrsa -out ca.key 3072
#生成一个3072位的key,也就是私钥
openssl req -new -x509 -days 3650 -key ca.key -out ca.pem
#生成一个数字证书ca.pem,3650表示证书的有效时间是3年,按箭头提示填写即可,没有箭头标注的为空:


生成域名的证书:
openssl genrsa -out harbor.key  3072
#生成一个3072位的key,也就是私钥
openssl req -new -key harbor.key -out harbor.csr
#生成一个证书请求,一会签发证书时需要的,标箭头的按提示填写,没有箭头标注的为空:


签发证书:
openssl x509 -req -in harbor.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out harbor.pem -days 3650



#创建安装目录
mkdir /data/harbor
#将相关安装包传到文件目录

#拷贝docker-compse 到Bin目录
cp docker-compose-Linux-x86_64.64 /usr/local/bin/docker-compose

#赋予执行权限
chmod +x /usr/local/bin/docker-compose

#验证查看版本号
docker-compose -v



#解压harbor安装包

tar zxvf harbor-offline-installer-v2.3.0-rc3.tgz

cd harbor/

cp harbor.yml.tmpl  harbor.yml

#编辑配置文件
vim harbor.yml

修改hostname 和主机名一致 harbor,也可以改为域名
注:如果不用https则注释掉https相关配置
external_url: https://xxx.xxyx.cn#该配置解决nginx反向代理得问题
修改证书路径
#/data/ssl/harbor.pem
#/data/ssl/harbor.key


#上传harbor 镜像到 /data/harbor

docker load -i docker-harbor-2-3-0.tar.gz


#执行安装文件
/data/harbor/harbor/install.sh



#配置访问主机和harbor,hosts
vim /etc/hosts

192.168.31.13 harbor
192.168.31.10 stu01

#vim /etc/docker/daemon.json
配置新增加了一行内容如下:
"insecure-registries":["192.168.31.13"]
上面增加的内容表示我们内网访问harbor的时候走的是http,192.168.31.13是安装harbor机器的ip
systemctl daemon-reload
systemctl restart docker

#登录本地仓库
docker login 192.168.31.13

Username:admin 
Password:  Harbor12345




#在客户端推送镜像到本地仓库
docker tag  tomcat:latest  192.168.31.13/aaa/tomcat:v1

docker push 192.168.31.13/aaa/tomcat:v1


#harbor平台验证
浏览器:192.168.31.13


docker push 192.168.31.13/dev/nginx:v1





##会出现的问题#######

#错误信息如下

docker login -u admin -p Harbor12345 reg.mydomain.com
Error response from daemon: Get https://reg.mydomain.com/v2/: unauthorized: authentication required


#解决方案如下

在harbor2.x当中如果需要使用nginx做代理,官方提供了external_url字段解决了这个问题,只需要在harbor.yml文件当中配置这个字段值即可。
eg:
hostname: xx.mydomain.com
external_url: https://xx.mydomain.com
 
在harbor1.9.x中则方案如下:
终于通过查看位于common/config/registry/config.yml的注册表配置找到了问题。
 
该身份验证令牌参数名称境界机设定为http://reg.mydomain.com/service/token。
我已经改为https://并且它解决了我的问题,但我并不理解,因为我的反向nginx服务器配置有http - > https重定向所以它应该工作...


0

评论区