跳转到主要内容

harbor&&docker代理&&docker被墙解决办法

下载安装包

下载地址:https://github.com/goharbor/harbor/releases

在线安装:配置简单,但是要能直连docker hub下载依赖镜像。

可以根据自己的网络环境选择离线安装或者在线安装,由于docker hub被墙,首选离线安装包

安装与配置

# 解压缩安装包
tar -xvzf harbor-offline-installer-v2.10.3.tgz

# 复制harbor.yml.tmpl并改名为harbor.yml
cp ./harbor.yml.tmpl ./harbor.yml

修改安装配置

# vi ./harbor.yml
# 修改主机名
hostname: harbor.iovhm.com

# 默认情况下不需要改名,如果你的80端口和443端口被占用,请修改
# 如果处于内网环境,没有域名和证书,可以将https节点注释
http:
  port: 5000

# 修改harbor持久化路径
data_volume: /data/harbor/data

# 如果你的内网端口(协议)与外网端口不一致
external_url: https://harbor.iovhm.com

执行安装

# 执行安装
./install
# 安装完成后,会在安装目录多出来一个docker-compose.yaml文件
# 后续可以直接使用docker-compose启动

# 默认用户名和密码 admin /Harbor12345
# 首次登录后请更改密码

设置镜像加速代理

  • 增加目标仓库

  • 选择合适的目标仓库

  • 创建项目,并选择为镜像代理,指定需要代理的仓库

  • 为安全考虑,应该将关闭镜像仓库的公开访问选项

  • 测试拉取

  • 同时,在项目里面也可以看到对应的镜像

镜像加速代理之使用镜像复制

出于管理要求,全公开方式镜像代理并不是一个好的选择,使用镜像复制则可以更好的管理

  • 设置复制规则

复制模式:

push-based:将本地仓库的镜像复制到目标仓库。harbor并没有仓库概念,取而代之的是项目(命名空间),既你需要将项目(library)之中的某个镜像(image)推送到远端,则本地的资源过滤器填写为 library/image

pull-based:将远程仓库的镜像复制到本地仓库,由于部分镜像的特殊性,既类似nginx,centos等镜像,并没有前缀而导致复制失败,实际上此类镜像也有前缀为library,只不过是docker默认忽略了,既,此类镜像名称应该填写为 library/nginx

目标:同步到那个仓库

扁平化:对较长的路径继续替换,可以点击帮助提示了解更多

  • 开始复制

  • 查看同步情况