我无法使用 docker API 将图像推送到私有(private)注册表。我已经阅读了我在各处找到的所有内容并尝试了所有内容,但没有运气......
我试过 :
curl -X POST -H "X-Registry-Auth:XXXXXXXXXXXXXXX" http://dockerapiurl:2375/images/registryurl/python/push?tag=6
或者
curl -X POST -H 'X-Registry-Auth:{"username": "xxxxxx","password": "xxxxx", "serveraddress": "xxxx.url.net", "auth": ""}' http://dockerapiurl:2375/images/registryurl/python/push?tag=6
我总是得到同样的错误:
{"errorDetail":{"message":"errors:\ndenied: 请求访问资源被拒绝\nunauthorized: 需要身份验证\n"},"error":"errors:\ndenied: 请求访问资源被拒绝\n未授权:需要身份验证\n"}
如果我在 CLI 模式下使用 docker push 一切正常,我做错了什么?
谢谢!!
最佳答案
它需要以base 64编码,试试这个
XRA=`echo "{ \"username\": \"xxxxxx\", \"password\": \"xxxxxx\", \"email\": \"youmail@example.org\", \"serveraddress\": \"xxxxxx\" }" | base64 --wrap=0`
curl -X POST -d "" -H "X-Registry-Auth: $XRA" http://dockerapiurl:2375/images/registryurl/python/push?tag=6
最终结果应该是这样的curl -X POST -d "" -H "X-Registry-Auth: eyAidXNlcm5hbWUiOiAieHh4eHh4IiwgInBhc3N3b3JkIjogInh4eHh4eCIsICJlbWFpbCI6ICJ5b3VtYWlsQGV4YW1wbGUub3JnIiB9Cg==" http://dockerapiurl:2375/images/registryurl/python/push?tag=6
关于Docker API 推送到私有(private)注册表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64472832/