您的当前位置:首页 >IT科技类资讯 >私有镜像仓库 Harbor 安装和使用 正文
时间:2025-11-04 13:16:53 来源:网络整理编辑:IT科技类资讯
介绍我们如果需要部署一个私有镜像仓库来使用,最简单的就是 registry ,一行命令就可以运行在 Docker 中,但功能也比较弱,如果想要私有镜像仓库功能更丰富些,可以使用 Harbor 。本文简
我们如果需要部署一个私有镜像仓库来使用,镜像最简单的仓库就是 registry ,一行命令就可以运行在 Docker 中,安装但功能也比较弱,和使如果想要私有镜像仓库功能更丰富些,镜像可以使用 Harbor 。仓库
本文简单介绍下 Harbor 的安装安装和使用。
如果没有安装 wget ,仓库先执行下面命令安装:
复制yum install -y wget1.下载包:
复制wget https://github.com/goharbor/harbor/releases/download/v2.9.1/harbor-offline-installer-v2.9.1.tgz1.如果无法通过 wget 进行下载,安装可以直接到 Github 网站:https://github.com/goharbor/harbor/releases/ 进行下载,和使然后拷贝到服务器中:

执行下面命令进行解压:
复制tar -xvf harbor-offline-installer-v2.9.1.tgz1.
执行下面命令新建目录,镜像并将程序文件复制到目录中:
复制mkdir /opt/harbor mv harbor/* /opt/harbor cd /opt/harbor1.2.3.修改 Harbor 配置文件:
复制cp -ar harbor.yml.tmpl harbor.yml vi harbor.yml1.2.
编辑完配置文件,接下来在 harbor 目录下安装 Harbor。先进行预处理:
复制./prepare1.
执行下面命令进行安装:
复制./install.sh1.
稍等一会,执行 docker-compose ps ,如果所有容器的源码库状态都是 healthy ,说明正常:

登录后界面如下:

安装完成后,在外网使用 docker login 发现不能正常登录,于是先进内网进行验证,发现内网也不能登陆,提示信息如下:
[root@localhost data]# docker login 172.16.10.103:9998 Username: admin Password: Error response from daemon: Get "https://172.16.10.103:9998/v2/": http: server gave HTTP response to HTTPS client
需要将内网服务器 IP 和端口配置到 daemon.json 文件中,执行下面命令进行配置:
复制sudo tee /etc/docker/daemon.json <<-EOF > { > "insecure-registries":["172.16.10.103:9998"] > } > EOF1.2.3.4.5.然后执行下面命令重启生效:
复制sudo systemctl daemon-reload sudo systemctl restart docker1.2.再次登录:
[root@localhost docker]# docker login 172.16.10.103:9998 Username: admin Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
这个不仅仅是内网,哪台机器需要进行登录操作,都需要进行上面的配置。
当内网正常后,发现外网依然不能正常登录,提示如下:
fengwei@fengweideMBP ~ % docker login hub.fwhyy.com:1234
Username: admin Password: Error response from daemon: Get "http://hub.fwhyy.com:1234/v2/": Get "http://172.16.10.103:9998/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry": context deadline exceeded (Client.Timeout exceeded while awaiting headers) (Client.Timeout exceeded while awaiting headers)解决这个问题需要修改 harbor.yml 配置,将 hostname 修改为外网的 IP 或域名(不需要加端口):

将 external_url 修改为外网访问的地址(需要加上端口):

修改完后需要重启 Harbor,执行下面命令进行重启:
复制cd /opt/harbor ./prepare docker-compose down -v docker-compose up -d1.2.3.4.外网服务器的 nginx 配置如下:
复制server { listen 1234; server_name hub.fwhyy.com; client_max_body_size 2000M; gzip on; location / { proxy_pass http://172.16.10.103:9998; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrate"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header referer $http_referer; proxy_set_header X-Forwarded-Proto $scheme; } location /v2/ { proxy_pass http://172.16.10.103:9998/v2/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrate"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header referer $http_referer; proxy_set_header X-Forwarded-Proto $scheme; } location /service/ { proxy_pass http://172.16.10.103:9998/service/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrate"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header referer $http_referer; proxy_set_header X-Forwarded-Proto $scheme; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }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.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.Harbor 里功能比较多,常用的云南idc服务商有项目、用户管理、项目定额。
项目:可以针对不同的项目单独创建,每个项目都有自己的镜像地址用户管理:可以维护用户,不同的项目可以设置不同的维护人员项目定额:设置项目对应的镜像仓库最大空间容量下面就按照步骤将一个镜像推送到 Harbor 中。
在用户管理中创建名称为 images_admin 的用户:

在项目中创建名称为 fw 的项目,并添加 images_admin 为项目的维护人员:

在项目定额中设置项目的配额大小为 2GB:

先以一个 nginx 镜像为例,直接推送试试,命令如下:
复制docker tag nginx:latest hub.fwhyy.com:1234/fw/nginx:latest docker push hub.fwhyy.com:1234/fw/nginx:latest1.2.因为没有登录,会提示没有权限推送:
The push refers to repository [hub.fwhyy.com:1234/fw/nginx] b074db3b55e1: Preparing e50c68532c4a: Preparing f6ba584ca3ec: Preparing 01aaa195cdad: Preparing 2a13e6a7cca6: Preparing 370869eba6e9: Waiting 7292cf786aa8: Waiting unauthorized: unauthorized to access repository: fw/nginx, action: push: unauthorized to access repository: fw/nginx, action: push
使用下面命令进行登录后再进行推送:
复制docker login hub.fwhyy.com:1234 # 输入用户名密码 docker tag nginx:latest hub.fwhyy.com:1234/fw/nginx:latest docker push hub.fwhyy.com:1234/fw/nginx:latest1.2.3.4.登录后,就可以正常推送了,登录进入系统,可以看到在项目的镜像仓库中已经可以看到了:

电脑系统安装教程(简明易懂的教程,助你快速掌握电脑系统安装技巧)2025-11-04 12:31
windows 7开启键盘鼠标键用键盘来控制鼠标的移动2025-11-04 12:11
windows 7怎么设置密码永不过期?2025-11-04 12:08
各个都很实用:windows 7系统电脑日常小技巧2025-11-04 11:37
电脑主机箱DIY(让你的电脑更加便携,打造独一无二的主机箱)2025-11-04 11:03
windows 7宽带连接错误711的5种解决方法2025-11-04 11:01
windows 7找回误删的“最近访问的位置”的方法2025-11-04 11:01
管理windows 7系统应用跳转列表的快捷方式教程2025-11-04 10:46
影驰GTS250显卡CF表现如何?(分析影驰GTS250显卡CF的性能、优势与劣势)2025-11-04 10:37
个性windows 7固定系统图标不随更换windows 7主题而改变2025-11-04 10:30
显卡安装软件教程(以NVIDIA显卡为例,详解显卡安装软件步骤,让电脑性能提升更简单)2025-11-04 12:52
windows 7怎么关闭放大镜?windows7取消开机自动运行放大镜方法2025-11-04 12:51
Win 7和XP关机后变自动重启的解决办法2025-11-04 12:17
windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务2025-11-04 11:54
解决电脑显示dll文件错误的方法(如何修复电脑显示dll文件错误问题)2025-11-04 11:45
windows 7怎么更换扫雷游戏的外观让其与众不同2025-11-04 11:41
上帝不止一个 更多Windows7 快捷模式.2025-11-04 11:30
加快windows 7启动速度的一些经验技巧整理2025-11-04 11:08
三星Note3和iPhone5s拍照对比(以画质、色彩还原和功能性为考量,哪款手机更适合你?)2025-11-04 11:01
如何让windows 7打完补丁不再频繁提示“重启系统”2025-11-04 10:54