一、设置原因
由于局域网限制,机器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