Docker-Registry
docker 私有系統資料庫 - 基本身份驗證
我使用以下方法設置了一個不安全的私有系統資料庫:
[root@docker-regi ~]#docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > /auth/htpasswd [root@docker-regi ~]#docker run -d -p 5000:5000 --restart=always --name registry_auth -v `pwd`/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry:2
但是在嘗試登錄時:
[root@docker-remote ~]# !748 docker login -u myuser -p mypassword 192.168.122.190:5000 Error response from daemon: login attempt to http://192.168.122.190:5000/v2/ failed with status: 400 Bad Request [root@docker-remote ~]#
參考https://docs.docker.com/registry/deploying/#native-basic-auth && https://github.com/docker/distribution/issues/842
在第一個命令中,您將 htpasswd 寫到:
/auth/
然後你安裝了:
`pwd`/auth
所以那些目錄不匹配,你從來沒有真正安裝過 htpassswd 文件
如果您寫出
auth/htpasswd
它會起作用,因為它正在寫入您的目前目錄,而不是/
以下對我來說非常有效:
mkdir auth docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > auth/htpasswd docker run -d -p 5000:5000 --restart=always --name registry_auth -v `pwd`/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry:2 docker login -u myuser -p mypassword localhost:5000
回報:
Login Succeeded