其实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裸奔的同学可以忽略这个坑,但是作为一个有为青年,你怎么能容忍自己的网站地址栏没有绿色的小图标~~~