v1版本的docker registry用nginx配置,v2版本的用nginx有些問題,客戶端總是會請求到v1/下面去,
以下從 http://blog.csdn.net/felix_yujing/article/details/51564739 轉過來的,親測可用。
配置帶用戶權限的registry
到上面為止,registry已經可以使用了。如果想要控制registry的使用權限,使其只有在登錄用戶名和密碼之后才能使用的話,還需要做額外的設置。
registry的用戶名密碼文件可以通過htpasswd來生成:
- mkdir /opt/registry-var/auth/
- docker run --entrypoint htpasswd registry:2.4.1 -Bbn felix felix >> /opt/registry-var/auth/htpasswd
上面這條命令是為felix用戶名生成密碼為felix的一條用戶信息,存在/opt/registry-var/auth/htpasswd文件里面,文件中存的密碼是被加密過的。
使用帶用戶權限的registry時候,容器的啟動命令就跟上面不一樣了,將之前的容器停掉並刪除,然后執行下面的命令:
- docker run -d -p 5000:5000 --restart=always \
- -v /opt/registry-var/auth/:/auth/ \
- -e "REGISTRY_AUTH=htpasswd" \
- -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
- -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
- -v /opt/registry-var/:/var/lib/registry/ \
- registry:2.4.1
這時,如果直接想查看倉庫信息、pull或push都會出現權限報錯。必須先使用docker login 命令來登錄私有倉庫:
- docker login 192.168.0.100:5000
根據提示,輸入用戶名和密碼即可。如果登錄成功,會在/root/.docker/config.json文件中保存賬戶信息,這樣就可以繼續使用了。