其实Docker Registry 就是一个API backend,所以加一个Nginx前端有大大的好处,比如docker push 时增加用户名密码验证。
怎么加?请参考以下nginx配置
upstream docker-registry {
server 127.0.0.1:5000;
} server {
listen 80;
server_name you.awesome.com;
client_max_body_size 0;
chunked_transfer_encoding on; location / { if ($http_user_agent ~ "^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*$" ) {
return 505;
} proxy_pass http://docker-registry/;
proxy_set_header Host $http_host; # required for docker client's sake
proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 900;
}
}
完成,如果还不成功,可以联系楼主,楼主可以提供有偿远程调试服务。
2月17日更新
情人节过完,就马上有同学问为什么要给registry加一个前端?因为更换ssl证书需要重启docker。当然,不用ssl裸奔的同学可以忽略这个坑,但是作为一个有为青年,你怎么能容忍自己的网站地址栏没有绿色的小图标~~~