小编chv*_*vck的帖子

谷歌容器注册表golang moby身份验证

我正在使用谷歌容器注册表来托管我的docker镜像.我也使用moby客户端来golang与之交互.我正在使用JSON服务密钥方法,它似乎与RegistryLogin一起使用.响应文本是Login Successful.但是,我不知道如何使用ImagePull返回的身份验证密钥.在引擎盖设置下,RegistryAuth似乎设置了作为X-Registry-Auth标头传递的任何字符串,谷歌似乎没有在任何地方提到这一点.

我已经尝试将返回的密钥作为RegistryAuth传递,我已经尝试运行RegistryLogin然后只是拉动没有RegistryAuth.我已经尝试了base64编码我的auth配置并在RegistryAuth中发送它.无论我尝试什么,我都会收到"来自守护进程的错误响应:找不到存储库xxx:不存在或没有拉取访问权限".运行docker登录然后使用相同的详细信息进行docker pull在cli上运行正常.我的代码是:

authConfig := types.AuthConfig{
    Username:      "_json_key",
    Password:      string(decodedKey),
    ServerAddress: "https://gcr.io",
}

_, err = engine.Client.RegistryLogin(ctx, authConfig)
if err != nil {
    return err
}

responseBody, err := engine.Client.ImagePull(ctx, image, types.ImagePullOptions{
})
defer responseBody.Close()

if err != nil {
    return err
}
Run Code Online (Sandbox Code Playgroud)

decodingKey是JSON密钥文件内容.任何想法如何让这个工作?

go docker moby

6
推荐指数
1
解决办法
405
查看次数

标签 统计

docker ×1

go ×1

moby ×1