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
目标:同步到那个仓库
扁平化:对较长的路径继续替换,可以点击帮助提示了解更多
- 开始复制
- 查看同步情况