将我的用户名和密码复制/粘贴到 Docker Hub 网站即可正常工作。
密码较长,但不含破壳符号。
将这些相同的凭据复制/粘贴到命令行中
docker login
会导致incorrect username or password
错误。我尝试过以交互方式传递凭据(复制/粘贴和键入)并通过命令行参数传递,结果相同:
# INTERACTIVE
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: [email protected]
Password: <REDACTED>
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password
# COMMAND LINE
$ docker login -u [email protected] -p <REDACTED>
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password
@mustaccio 是正确的。
Docker Hub 网站允许您使用用户名或电子邮件登录,并且该网站不需要区分大小写的用户名。
docker login
确实需要大小写正确的用户名,并且不适用于您的电子邮件地址。
当我注册时,我选择了一个驼峰式的用户名,例如:
MyUsername
Docker 在实践中强制此用户名全部小写。登录后,您将在网站的右上角看到正确的用户名。在这个例子中:
myusername
该网站允许您使用 MyUsername 或 myusername 登录。
docker login
仅允许我的用户名。
如果您没有注销并且输入了用于登录的电子邮件地址,也会发生同样的问题。
docker logout
docker login
不要输入电子邮件地址,而是输入用户名
我使用了密码生成器,在密码中添加了特殊字符,我可以在浏览器中登录,但不能通过 cli 登录。我将其更改为仅字母和数字,并且成功了。
试试这个:
sudo chmod 666 /var/run/docker.sock
sudo docker login
我就这样解决了这个问题。 转到 https://hub.docker.com/settings/security 并在我的帐户中创建一个新令牌。
登录使用
docker login
命令
并输入:
myusername in lowercase
和
token (instead of password)
如果您在 Windows 上使用 git bash,则使用以下命令:
winpty docker login --username <yourusername>
它会提示输入密码。输入您的密码。显示“登录成功”消息。
登录docker官方网站右上角可以看到“你的用户名”。 您的电子邮件无法正常工作。
如果有人在确保您的用户和通行证正确后仍然遇到此问题,请在帐户设置>安全>新访问令牌中生成令牌,我挣扎了一个小时,但使用令牌有效。不知道为什么
对于任何犯我错误的人:运行 sudo docker login -u USERNAME。当它要求输入密码时,如果您是第一次在终端上运行 sudo,则它会要求输入 sudo 的第一个密码。输入您的 sudo 密码。然后,它会第二次要求输入密码,这是你输入 Docker 密码的地方。
在 Windows 上: 右键单击系统托盘上的 docker 并注销。然后登录,但使用您的 docker hub 用户名而不是电子邮件地址。
对于登录 hub.docker.com,对我有用的是确保您不要指定“hub.docker.com”!!!不同版本的 API-DNS?所有这一切都是在我花了一个小时更改密码、更改令牌等之后完成的。
简单来说:
docker login --username=myusername <enter>
theToken <enter>
在密码中添加 @ 等特殊字符可能会导致从终端登录 docker 变得混乱,即使我们使用正确的大小写并且其他所有内容都正确。但如果我们在密码中使用特殊字符,它就可以在网站上工作。
所以基本上只在密码中使用字母和数字,不要使用特殊字符进行 docker 登录
请使用您的 DOCKER ID 和密码登录
这会立即起作用
如果像我一样,您之前尝试登录但失败,则您的 pass 密码存储可能已经有一个密钥,这会导致 Docker CLI 出现某种未处理的异常。如果也像我一样,存储的密钥没有用,您可以按照以下说明将其删除。
$ pass #this will list your keys tree
$ pass rm -r KEY_OR_KEY_DIRECTORY #if your key is inside a node in the tree, then it's a directory and you must specify -r parameter for recursive deletion