加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

来自Docker hub私有注册表的Docker远程api

发布时间:2020-12-16 03:43:54 所属栏目:安全 来源:网络整理
导读:我正在尝试使用docker远程API从Docker hub https://registry.hub.docker.com/u/myname/myapp中托管的私有存储库中提取docker镜像. doc不清楚如何在这样的POST请求中指定身份验证凭据 curl -XPOST -H "X-Registy-Auth: base64_encoded_authconfig_object" "ht

我正在尝试使用docker远程API从Docker hub https://registry.hub.docker.com/u/myname/myapp中托管的私有存储库中提取docker镜像. doc不清楚如何在这样的POST请求中指定身份验证凭据

curl -XPOST -H "X-Registy-Auth: base64_encoded_authconfig_object" "http://localhost:4243/images/create?fromImage=myname/myapp"

This也没有详细说明如何生成authconfig.

This讨论了使用如下结构发送基本64位编码的json:

{
  "index_url": {
    "username": "string","password": "string","email": "string","serveraddress": "string"
  }
}

但不解释什么是index_url和serveraddress.是吗

index_url = https://registry.hub.docker.com/u/myname/myapp
serveraddress = https://registry.hub.docker.com

上面的配置给了我404,可能是注册中心私有仓库没有被识别.

我也试过base 64编码我的?/ .dockercfg的内容

{
  "https://index.docker.io/v1/": {
    "auth":"xxxxxxxxxxxxxxxxxxx==","email":"myname@myemail.com"
  }
}

你能告诉我如何生成base64编码的authconfig对象并使上面的curl命令工作.

提前致谢

Docker版本

Client version: 0.11.1
Client API version: 1.11
Go version (client): go1.2.1
Git commit (client): fb99f99
Server version: 0.11.1
Server API version: 1.11
Git commit (server): fb99f99
Go version (server): go1.2.1
我遇到过同样的问题.

这是您应该用于传递凭据的“原始”AuthConfig对象:

{
  "username":"your_registry_username_or_email","password":"*****","auth":"",// leave empty
  "email":"your@email.tld"
}

然后,您必须使用Base64对其进行“编码”.

您没有说出您正在使用的语言,但如果需要,this awesome site将允许您一键编码您的对象.或者,从shell:

echo '{"username":"username","email":"your@email.tld"}' | base64

然后,只需将编码值传递给标头:

X-Registry-Auth: eyJ1c2VybmFtZSI6InlvdXJfcmVnaXN0cnlfdXNlcm5hbWVfb3JfZW1haWwiLCJwYXNzd29yZCI6IioqKioqIiwiYXV0aCI6IiIsImVtYWlsIjoieW91ckBlbWFpbC50bGQifQ==

这是一个使用curl和的工作示例

> r.getitlive.io提供的注册表
>一个停靠在’192.168.60.10:8888’的码头守护进程:

curl -X POST  -d ""  
  -H "X-Registry-Auth: eyJ1c2VybmFtZSI6InlvdXJfcmVnaXN0cnlfdXNlcm5hbWVfb3JfZW1haWwiLCJwYXNzd29yZCI6IioqKioqIiwiYXV0aCI6IiIsImVtYWlsIjoieW91ckBlbWFpbC50bGQifQ==" 
  'http://192.168.60.11:8888/images/create?fromImage=r.getitlive.io/cool/repo&tag=latest'

注意:通过将远程注册表端点/ URL放在AuthConfig对象的serveraddress字段中,我无法使其工作.这就是我将注册表主机添加到fromImage =参数的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读