我搭建了一个docker私有仓库,
1、系统是centos6
2、通过nginx 代理,并增加了用户名和密码认证,还有ssl加密传输
3、docker仓库registry是安装在192.168.0.40上,并且nginx也是安装在这台主机上
nginx配置如下:
server {
        listen       443;
        server_name  registry.info.cn;
        ssl          on;
        ssl_certificate      info.cn.crt;
        ssl_certificate_key  info.cn.key;
        access_log  logs/host.access.log  main;
        location / {
            auth_basic   "Security Zones";
            auth_basic_user_file /usr/local/nginx/password;
            proxy_pass http://192.168.0.40:5000;
        }        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }    }
其中ca证书是花钱购买的,能正常使用。
在docker客户端通过
curl -X GET https://test:[email protected]/v1/search   能正确返回
docker login https://registry.info.cn     可以正常登录,能返回success但是我push一个images到registry的时候就报错
[root@localhost /]# docker push registry.info.cn/centos7
The push refers to a repository [registry.info.cn/centos7] (len: 1)
Sending image list
Pushing repository registry.info.cn/centos7 (1 tags)
47d44cb6f252: Pushing 
Failed to upload metadata: Put https://192.168.0.40:5000/v1/ima ... 8f92557f4d05a/json: EOF
我这里好奇的是,push的时候怎么又会解析出IP来访问了,https://192.168.0.40:5000这个肯定是会出错的,不知道原因?????