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

Docker总是说未经授权:推送图像时需要身份验证,docker,Docker,我是Docker的新手,试图遵循官方指南 当我想登录时,我输入docker login,然后输入我的登录名和密码。登录成功。但是当我想用docker push drazik/get started:part1推送图像时,它会输出unauthorized:authentication required 我绝对相信我的登录/密码是正确的。但有一点很奇怪:我可以输入任何我想要的用户名和密码,docker登录总是输出登录成功 我的docker版本是1.13.1,构建27e468e/1.13.1 有人能找

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

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

我绝对相信我的登录/密码是正确的。但有一点很奇怪:我可以输入任何我想要的用户名和密码,docker登录总是输出登录成功

我的docker版本是1.13.1,构建27e468e/1.13.1


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

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

因此,以下是发生这种情况的唯一方法:

1-

您正在DockerHub上使用一个登录名为mylogin的帐户,但drazik除外

通过以下方式创建本地映像:

docker build -t drazik/get-started:part1 .
% 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
您可以通过以下方式登录Docker:

docker build -t drazik/get-started:part1 .
% 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
然后按以下方式推送图像:

docker build -t drazik/get-started:part1 .
% 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帐户登录,而是使用另一个帐户登录

二,-

您不共享相同的本地帐户来登录、创建映像并推送映像例如,您以本地用户root登录DockerHub,您以root用户身份创建映像,但您以简单用户身份推送映像


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

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