docker经过代理上传https协议的私服地址报错unknown blob

1、环境说明

1.Docker

[root@server58 ~]# docker version
Client:
 Version:       18.04.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    3d479c0
 Built: Tue Apr 10 18:21:36 2018
 OS/Arch:       linux/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:      18.04.0-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   3d479c0
  Built:        Tue Apr 10 18:25:25 2018
  OS/Arch:      linux/amd64
  Experimental: false

2.Harbor

  • 版本:4.0
  • 端口:8088

3.nginx

  • 域名:harbor.ddpss.com
  • 经过nginx作为代理,配置ssl证书,将https://harbor.ddpss.com代理到http://localhost:8081。
  • 同时配置重定向到https://harbor.ddpss.com

nginx配置文件node

server {
    listen 80;
    server_name harbor.ddpss.com;
    return  301 https://$server_name$request_uri; 
}

server {
        listen       443;
        server_name  harbor.ddpss.com;
        ssl on;
        ssl_certificate ssl/kingboyworld.com_bundle.crt; 
        ssl_certificate_key ssl/kingboyworld.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
        ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
        ssl_prefer_server_ciphers on;
        access_log  logs/harbor.ddpss.com.access.log;
        error_log   logs/harbor.ddpss.com.error.log;
        location / {
                    proxy_pass http://localhost:8088;
                    proxy_set_header HOST $HOST;#向tomcat转发信息头数据
                    proxy_set_header        X-Real-IP $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header        X-Forwarded-Proto "https";
                    client_max_body_size 1G;
                    proxy_connect_timeout 3000;
                    proxy_send_timeout 3000;
                    proxy_read_timeout 3000;
                    proxy_buffering    off;
                    tcp_nodelay        on;
            chunked_transfer_encoding on; 
        }

}

2、报错信息

[root@usqlo0HzvGgZ harbor]# docker push harbor.ddpss.com/k8s/metrics-server:v0.6.1
The push refers to repository [harbor.ddpss.com/k8s/metrics-server]
3dc34f14eb83: Pushing [==================================================>] 66.43MB/66.43MB
5b1fa8e3e100: Pushing [==================================================>] 2.362MB/2.362MB
unknown blob

3、缘由查找

在nginx的配置文件中多加了一行,linux

proxy_set_header HOST $HOST;#向tomcat转发信息头数据

把这一行注释掉便可。nginx

4、缘由分析(不必定对)

HOST会把当前访问的host带到harbor启动nginx镜像,致使了这个问题。

发表评论

后才能评论