Docker API 推送到私有(private)注册表错误

标签 docker api

我无法使用 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/

相关文章:

php - 使用 cURL 通过 PHP 将文件发送到 API

docker - Kubernetes 在现有目录上挂载卷,其中包含容器内的文件

docker - Docker命名卷

Docker 从 env_file 而不是默认的 .env 文件组成 extra_hosts

azure - 如何使用Azure APIM将API请求中的参数传递到后端URL?

javascript - 如何让 Postman 集合在调用之间等待

go - 带 Docker 的静态 Go 二进制文件 - 找不到入口点

java - 带有 Spring Boot 应用程序的 Docker 卡在 RaspberryPi 上的 AnnotationConfigServletWebServerApplicationContext

api - 允许谷歌翻译 API (v2) 的所有引用规则?

api - Swagger 代码生成器 - 有经验的人吗?