关于nginx代理harbor来推送镜像

一、设置原因

由于局域网限制,机器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修改配置文件如何生效?

  1.  进入harbor的安装目录
  2. 修改harbor.yml
  3. ./prepare
  4. docker-compose down -v
  5. 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

原文地址:https://www.cnblogs.com/McRemend/p/14252403.html