Docker总是说未经授权的:推送图像时需要validation
我是Docker的新手,试图按照正式的入门指南。
当我想login时,inputdocker login
,然后input我的login名和密码。 它输出“login成功”。 但是当我想用docker push drazik/get-started:part1
来推送图像时,它会输出“unauthorized:required required”。
我绝对相信我的login/密码是好的。 但是有一些奇怪的东西:我可以input任何我想要的用户名和密码, docker login
总是输出“login suceeded”。
我的docker版本是“1.13.1,build 27e468e / 1.13.1”。
有人可以弄清楚什么是错的? 非常感谢你。
请注意,login时生成的授权令牌将保存在~/.docker/config.json
,并在您推送图像时从同一文件中读取。
所以,以下是这种情况发生的唯一途径:
1-
您正在DockerHub上使用login名: mylogin
(除drazik外的任何内容)
你这样创build一个本地图像:
docker build -t drazik/get-started:part1 .
你这样loginDocker:
% 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
login,但另一个。
2-
您不共享同一个本地帐户login,创build映像并推送映像(例如,您以本地用户root身份login到DockerHub,您以root身份创build映像,但将映像作为简单用户来推送) 。
因此,授权令牌被保存到〜root / .docker / config.json中,但是docker docker push
尝试从〜user / .docker / config.json中读取它