实验环境:
harbor服务器系统:CentOS Linux release 7.5.1804 (Core)
harbor服务器IP:10.1.12.114
harbor版本:v1.5.0
docker版本:17.05.0-ce
另外为了测试pull镜像,使用了另一台test机器:10.200.22.8
GitHub地址:https://github.com/goharbor/harbor
部署过程:
1、下载安装包
下载地址:http://harbor.orientsoft.cn/
1 | cd /data && wget http: //harbor.orientsoft.cn/harbor-v1.5.0/harbor-offline-installer-v1.5.0.tgz |
2、上传并解压安装包
将下载下来的安装包解压到服务器的/usr/local目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@devopsdb1 soft]# tar -xzvf harbor-offline-installer-v1.5.0.tgz -C /usr/local/<br>[root@devopsdb1 local]# cd /usr/local/harbor/ [root@devopsdb1 harbor]# ll total 854960 drwxr-xr-x 3 root root 23 Feb 26 13:01 common -rw-r--r-- 1 root root 1185 May 2 2018 docker-compose.clair.yml -rw-r--r-- 1 root root 1725 May 2 2018 docker-compose.notary.yml -rw-r--r-- 1 root root 3596 May 2 2018 docker-compose.yml drwxr-xr-x 3 root root 156 May 2 2018 ha -rw-r--r-- 1 root root 6687 May 2 2018 harbor.cfg -rw-r--r-- 1 root root 875401338 May 2 2018 harbor.v1.5.0.tar.gz -rwxr-xr-x 1 root root 5773 May 2 2018 install.sh -rw-r--r-- 1 root root 10771 May 2 2018 LICENSE -rw-r--r-- 1 root root 482 May 2 2018 NOTICE -rwxr-xr-x 1 root root 27379 May 2 2018 prepare |
3、配置harbor和docker修改配置(重点)
3.1 编辑/usr/local/habor/harbor.cfg,主要修改两个地方:
80(HTTP) and 443(HTTPS)
3.2 SSL证书配置
官网配置说明:
https://github.com/vmware/harbor/blob/master/docs/configure_https.md
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <strong>#签发根证书</strong> [root@devopsdb1 harbor]# mkdir -p /data/cert && cd /data/cert #创建证书存放目录 [root@devopsdb1 harbor]# openssl genrsa - out ca.key 2048 #生成根证书私钥(无加密) [root@devopsdb1 harbor]# openssl req -x509 - new -nodes -key ca.key -days 10000 - out ca.crt -subj "/CN=Harbor-ca" #创建自己的CA证书(不使用第三方权威机构的CA来认证,自己充当CA的角色) req 产生证书签发申请命令 -x509 签发X.509格式证书命令。X.509是最通用的一种签名证书格式。 - new 生成证书请求-key 指定私钥文件-nodes 表示私钥不加密 - out 输出-subj 指定用户信息 -days 有效期 [root@devopsdb1 harbor]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout server.key - out server.csr #生成服务器端私钥和CSR签名请求 <strong>#签发服务器证书</strong> [root@devopsdb1 harbor]# echo subjectAltName = IP:10.1.12.114 > extfile.cnf [root@devopsdb1 harbor]# openssl x509 -req - in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 365 -extfile extfile.cnf - out server.crt x509 签发X.509格式证书命令。 -req 表示证书输入请求。 -days 表示有效天数 -extensions 表示按OpenSSL配置文件v3_req项添加扩展。 -CA 表示CA证书,这里为ca.crt -CAkey 表示CA证书密钥,这里为ca.key -CAcreateserial表示创建CA证书序列号 -extfile 指定文件 <strong>#设置docker证书</strong> # 如果如下目录不存在,请创建,如果有域名请按此格式依次创建 [root@devopsdb1 cert]# mkdir -p /etc/docker/certs.d/10.1.12.114 # 如果端口为443,则不需要指定。如果为自定义端口,请指定端口 # /etc/docker/certs.d/yourdomain.com:port # 将ca根证书依次复制到上述创建的目录中 [root@devopsdb1 cert]# cp /data/cert/ca.crt /etc/docker/certs.d/10.1.12.114/ [root@devopsdb1 cert]# cp server.crt server.key /etc/pki/ca-trust/source/anchors/<br>[root@devopsdb1 cert]# mkdir -p /etc/ssl/harbor/<br>[root@devopsdb1 cert]# cp /data/cert/server.crt /etc/ssl/harbor/<br>[root@devopsdb1 cert]# cp /data/cert/server.key /etc/ssl/harbor/<br> |
3.3 重启docker服务:
1 2 3 4 | [root@devopsdb1 cert]# update-ca-trust enable [root@devopsdb1 cert]# update-ca-trust extract [root@devopsdb1 cert]# systemctl daemon-reload #踩过的坑证明,这一步最好不要忘了,不然即使重启了docker,配置文件有可能也会不生效,导致各种奇怪的问题 [root@devopsdb1 cert]# systemctl restart docker |
4、安装docker-compose
1 2 3 4 5 | # curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose # chmod +x /usr/local/bin/docker-compose 或者 yum -y install docker-compose |
5、 执行install.sh脚本,安装harbor仓库
1 | [root@devopsdb1 harbor]# docker-compose up -d |
离线安装docker-compose和执行install.sh的注意事项都在《离线手动部署docker镜像仓库——harbor仓库(一)》里面说过,就不赘述了。
6、检查部署是否OK
6.1 检查容器启动状况,已经全部OK,默认使用443端口:
6.2 界面访问(加上1180端口哦):
7、测试使用
7.1 登录后创建一个data项目:
7.2 创建测试镜像并推送到仓库(这里也要带上端口号哟):
1 2 | [root@devopsdb1 cert]# docker tag 10.1.12.114:5000/eiki/archer:v2.0 10.1.12.114/data/eiki/archer:v2.0 [root@devopsdb1 cert]# docker push 10.1.12.114/data/eiki/archer:v2.0 |
7.3 查看仓库,镜像已经存在(登录账号:admin / Harbor12345)
7.4 复制pull命令,在test机器上测试pull命令:
1 | [root@www anchors]# docker pull 10.1.12.114/data/eiki/archer:v2.0The push refers to a repository [10.1.12.114/data/eiki/archer] <br>af0b15c8625b: Pushed <br>v2.0: digest: sha256:aea2c7bc314d5015556c3725dbcb66c739d9d7acc6df0681368d1b9aae3c9cd9 size: 524 |
=============下面的操作在test机器上进行=============
1、传递CA认证信息到test库:
1 2 | cd /data/cert/ && scp ca.crt 10.200.22.8:/etc/pki/ca-trust/source/anchors/ cd /data/cert/ && scp server.crt 10.200.22.8:/etc/pki/ca-trust/source/anchors/ |
2、重启test的docker服务:
1 2 3 | update-ca-trust enable update-ca-trust extract systemctl restart docker |
3.、登录:
1 2 3 4 | [root@www anchors]# docker login 10.1.12.114 Username (admin): admin Password: Login Succeeded |
4、在test机器上测试pull镜像:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [root@www anchors]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE eiki/archer latest de9c6958d8e4 4 days ago 1.8GB centos 7 1e1148e4cc2c 2 months ago 202MB [root@www anchors]# docker pull 10.1.12.114/data/hello-world:v12 v12: Pulling from data/hello-world 3f9a4cb51977: Pull complete Digest: sha256:aea2c7bc314d5015556c3725dbcb66c739d9d7acc6df0681368d1b9aae3c9cd9 Status: Downloaded newer image for 10.1.12.114/data/hello-world:v12 [root@www anchors]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE eiki/archer latest de9c6958d8e4 4 days ago 1.8GB 10.1.12.114/data/hello-world v12 fce289e99eb9 8 weeks ago 1.84kB centos 7 1e1148e4cc2c 2 months ago 202MB [root@www anchors]# |
至此,harbor仓库就部署好了。
参考来源:
https://blog.51cto.com/10950710/2152638
https://blog.51cto.com/10950710/2153086
https://blog.51cto.com/10950710/2301257
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 使用 Dify + LLM 构建精确任务处理应用