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

#### 下载安装包

下载地址:https://github.com/goharbor/harbor/releases

在线安装:配置简单，但是要能直连docker hub下载依赖镜像。

可以根据自己的网络环境选择离线安装或者在线安装，由于docker hub被墙，首选离线安装包



#### 安装与配置



```shell
# 解压缩安装包
tar -xvzf harbor-offline-installer-v2.10.3.tgz

# 复制harbor.yml.tmpl并改名为harbor.yml
cp ./harbor.yml.tmpl ./harbor.yml

```


#### 修改安装配置
```yaml
# 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

```



#### 执行安装

```shell
# 执行安装
./install
# 安装完成后，会在安装目录多出来一个docker-compose.yaml文件
# 后续可以直接使用docker-compose启动

# 默认用户名和密码 admin /Harbor12345
# 首次登录后请更改密码
```



#### 设置镜像加速代理

- 增加目标仓库

[![](https://iovhm.com/book/uploads/images/gallery/2024-08/scaled-1680-/YvcPRQhG6mDGYeFw-image-1723213925675.png)](https://iovhm.com/book/uploads/images/gallery/2024-08/YvcPRQhG6mDGYeFw-image-1723213925675.png)

- 选择合适的目标仓库

[![](https://iovhm.com/book/uploads/images/gallery/2024-08/scaled-1680-/1rH6zEzFYZvoGHoF-image-1723213947155.png)](https://iovhm.com/book/uploads/images/gallery/2024-08/1rH6zEzFYZvoGHoF-image-1723213947155.png)


- 创建项目，并选择为镜像代理，指定需要代理的仓库

[![](https://iovhm.com/book/uploads/images/gallery/2024-08/scaled-1680-/ILrjYWWbOxjZy35M-image-1723214043829.png)](https://iovhm.com/book/uploads/images/gallery/2024-08/ILrjYWWbOxjZy35M-image-1723214043829.png)

- 为安全考虑，应该将关闭镜像仓库的公开访问选项

[![](https://iovhm.com/book/uploads/images/gallery/2024-08/scaled-1680-/u6GcQIj34kbiGylQ-image-1723214005664.png)](https://iovhm.com/book/uploads/images/gallery/2024-08/u6GcQIj34kbiGylQ-image-1723214005664.png)



- 测试拉取

 [![](https://iovhm.com/book/uploads/images/gallery/2024-08/scaled-1680-/8RM7rKyFnvg8Ncvl-image-1723214093792.png)](https://iovhm.com/book/uploads/images/gallery/2024-08/8RM7rKyFnvg8Ncvl-image-1723214093792.png)

- 同时，在项目里面也可以看到对应的镜像


[![](https://iovhm.com/book/uploads/images/gallery/2024-08/scaled-1680-/6Ns0iBxaLW3oBabV-image-1723214102937.png)](https://iovhm.com/book/uploads/images/gallery/2024-08/6Ns0iBxaLW3oBabV-image-1723214102937.png)


#### 镜像加速代理之使用镜像复制

出于管理要求，全公开方式镜像代理并不是一个好的选择，使用镜像复制则可以更好的管理

- 设置复制规则

[![](https://iovhm.com/book/uploads/images/gallery/2024-08/scaled-1680-/rVUfHNsD3VOWoWs6-image-1723214152874.png)](https://iovhm.com/book/uploads/images/gallery/2024-08/rVUfHNsD3VOWoWs6-image-1723214152874.png)
>
>
> 复制模式：
>
> push-based:将本地仓库的镜像复制到目标仓库。harbor并没有仓库概念，取而代之的是项目（命名空间），既你需要将项目（library）之中的某个镜像(image)推送到远端，则本地的资源过滤器填写为 library/image
>
> pull-based:将远程仓库的镜像复制到本地仓库，由于部分镜像的特殊性，既类似nginx,centos等镜像，并没有前缀而导致复制失败，实际上此类镜像也有前缀为library，只不过是docker默认忽略了，既，此类镜像名称应该填写为 library/nginx
>
> 目标：同步到那个仓库
>
> 扁平化：对较长的路径继续替换，可以点击帮助提示了解更多



- 开始复制

 
[![](https://iovhm.com/book/uploads/images/gallery/2024-08/scaled-1680-/oKrD2fPQDJMvS6T5-image-1723214259870.png)](https://iovhm.com/book/uploads/images/gallery/2024-08/oKrD2fPQDJMvS6T5-image-1723214259870.png)


- 查看同步情况

 [![](https://iovhm.com/book/uploads/images/gallery/2024-08/scaled-1680-/hlMFFx5qrhwfKrFc-image-1723214279269.png)](https://iovhm.com/book/uploads/images/gallery/2024-08/hlMFFx5qrhwfKrFc-image-1723214279269.png)