【问题标题】:Docker always says unauthorized: authentication required when pushing an imageDocker总是说未授权:推送图像时需要身份验证
【发布时间】:2017-07-28 21:13:13
【问题描述】:

我是 Docker 新手,正在尝试遵循官方 get started 指南。

当我想登录时,我输入docker login,然后输入我的登录名和密码。它输出“登录成功”。但是当我想用docker push drazik/get-started:part1 推送图片时,它会输出“unauthorized: authentication required”。

我绝对确定我的登录名/密码是正确的。但是有些奇怪:我可以输入任何我想要的用户名和密码,docker login 总是输出“登录成功”。

我的 docker 版本是“1.13.1, build 27e468e/1.13.1”。

有人能找出问题所在吗?非常感谢。

【问题讨论】:

  • 输入docker login时使用的登录名是什么?

标签: docker


【解决方案1】:

请注意,您登录时生成的授权令牌保存在~/.docker/config.json 中,并在您推送图像时从同一文件中读取。

因此,只有以下几种情况会发生:

1-

您在 DockerHub 上使用登录名:mylogin(除了 drazik)

您可以这样创建本地图像:

docker build -t drazik/get-started:part1 .

您以这种方式登录 Docker:

% docker login
Username: mylogin
Password: ********

然后你以这种方式推送图像:

% docker push drazik/get-started:part1
The push refers to a repository [docker.io/drazik/get-started:part1]
5bef08742407: Preparing
unauthorized: authentication required

因此,这意味着您登录的不是drazik,而是另一个。

2-

您不共享同一个本地帐户来登录、创建镜像和推送镜像(例如,您以本地用户 root 登录到 DockerHub,您以 root 身份创建镜像,但您将镜像推送为简单用户)。

因此,授权令牌被保存到 ~root/.docker/config.json 但docker push 尝试从 ~user/.docker/config.json 读取它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 2019-08-24
    • 2018-10-16
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 2019-12-19
    相关资源
    最近更新 更多