我是Docker的新手,试图遵循官方的get started指南。
当我想登录时,我输入docker login
,然后输入我的登录名和密码。它输出" Login Succeeded"。但是当我想用docker push drazik/get-started:part1
推送图像时,它输出"未经授权:需要验证"。
我绝对相信我的登录名/密码是好的。但有一些奇怪的东西:我可以输入任何我想要的用户名和密码,docker login
总是输出"登录已成功"。
我的码头版本为" 1.13.1,版本为27e468e / 1.13.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中读取它