一、設置原因
由於局域網限制,機器A(裝有harbor的機器)、機器B(nginx代理服務器)、機器C(我的可以連接到鏡像倉庫的服務器,部署了一些服務的服務器)
需求是需要把C里面鏡像推送到A

二、大概步驟
1、nginx做代理
2、harbor里面設置代理后訪問的地址
3、需要login的機器的docker要設置docker的配置文件,並重啟docker
三、具體步驟截圖
1、nginx做代理
1 ## 設置upstream 2 upstream harbor{ 3 server x.x.x.x:xx; # 后端harbor地址 4 } 5 ## 設置代理后地址及監聽端口等 6 server { 7 listen 80; # 代理后端口 8 server_name xx.xx.com; # 代理后訪問地址 9 10 location /harbor { 11 proxy_pass http://harbor; # 這里對應的是上面upstream后指定的名稱 12 } 13 }
2、harbor里面設置代理后訪問的地址
通過nginx配置了代理之后,還需要修改harbor的配置文件設置proxy地址:
vim harbor.yml external_url: http://xx.xx.com
或者
echo external_url: http://xx.xx.com >> harbor.yml
修改完之后重啟應用配置
Harbor修改配置文件如何生效?
- 進入harbor的安裝目錄
- 修改harbor.yml
- ./prepare
- docker-compose down -v
- docker-compose up -d
引用:https://www.cnblogs.com/chase2020/p/13926372.html
完成之后應該是可以通過代理地址訪問了,但是需要docker login需要修改一些配置
3、添加對私有倉庫的認證(自行修改配置地址)
[root@k8s-master ~]# vim /etc/docker/daemon.json { "registry-mirrors": ["http://f1361db2.m.daocloud.io"], "insecure-registries": ["192.168.30.24"] } #重啟docker [root@k8s-master ~]# systemctl restart docker
4、成功完成最后一項!嘗試login成功。
參考的文章: https://blog.csdn.net/lcl_xiaowugui/article/details/105422794
