Docker总是说未经授权:推送图像时需要进行身份验证

时间:2017-07-28 21:13:13

标签: docker

我是Docker的新手,试图遵循官方的get started指南。

当我想登录时,我输入docker login,然后输入我的登录名和密码。它输出" Login Succeeded"。但是当我想用docker push drazik/get-started:part1推送图像时,它输出"未经授权:需要验证"。

我绝对相信我的登录名/密码是好的。但有一些奇怪的东西:我可以输入任何我想要的用户名和密码,docker login总是输出"登录已成功"。

我的码头版本为" 1.13.1,版本为27e468e / 1.13.1"。

有人能弄清楚出了什么问题吗?非常感谢你。

1 个答案:

答案 0 :(得分:0)

请注意,登录时生成的授权令牌会保存到~/.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中读取它