v1版本的docker registry用nginx配置,v2版本的用nginx有些问题,客户端总是会请求到v1/下面去,

以下从 http://blog.csdn.net/felix_yujing/article/details/51564739  转过来的,亲测可用。

配置带用户权限的registry

到上面为止,registry已经可以使用了。如果想要控制registry的使用权限,使其只有在登录用户名和密码之后才能使用的话,还需要做额外的设置。
registry的用户名密码文件可以通过htpasswd来生成:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. mkdir /opt/registry-var/auth/  
  2. docker run --entrypoint htpasswd registry:2.4.1 -Bbn felix felix  >> /opt/registry-var/auth/htpasswd  
上面这条命令是为felix用户名生成密码为felix的一条用户信息,存在/opt/registry-var/auth/htpasswd文件里面,文件中存的密码是被加密过的。
使用带用户权限的registry时候,容器的启动命令就跟上面不一样了,将之前的容器停掉并删除,然后执行下面的命令:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. docker run -d -p 5000:5000 --restart=always \  
  2.   -v /opt/registry-var/auth/:/auth/ \  
  3.   -e "REGISTRY_AUTH=htpasswd" \  
  4.   -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \  
  5.   -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \  
  6.   -v /opt/registry-var/:/var/lib/registry/ \  
  7.   registry:2.4.1  
这时,如果直接想查看仓库信息、pull或push都会出现权限报错。必须先使用docker login 命令来登录私有仓库:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. docker login 192.168.0.100:5000  
根据提示,输入用户名和密码即可。如果登录成功,会在/root/.docker/config.json文件中保存账户信息,这样就可以继续使用了。
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐