我是Docker的新手,正在尝试遵循官方的get started指南。
当我想要登录时,我输入docker login
,然后输入我的登录名和密码。输出"Login Succeeded“。但是当我想用docker push drazik/get-started:part1
推送图像时,它会输出“未授权:需要身份验证”。
我绝对确定我的登录名/密码是正确的。但有一件事很奇怪:我可以输入任何我想要的用户名和密码,docker login
总是输出“登录成功”。
我的docker版本是"1.13.1,build 27e468e/1.13.1“。
有没有人能找出问题出在哪里?非常感谢。
发布于 2017-07-29 21:22:49
请注意,登录时生成的授权令牌会保存到~/.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-
您在登录、创建镜像和推送镜像时不会共享相同的本地帐号(例如,您以本地用户根用户身份登录DockerHub,以根用户身份创建镜像,但以简单用户身份推送镜像)。
因此,授权令牌保存在~root/.docker/config.json中,但docker push
会尝试从~user/.docker/config.json中读取它
https://stackoverflow.com/questions/45382496
复制相似问题