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 

因此,这意味着您没有使用帐户draziklogin,但另一个。

2-

您不共享同一个本地帐户login,创build映像并推送映像(例如,您以本地用户root身份login到DockerHub,您以root身份创build映像,但将映像作为简单用户来推送) 。

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