我不确定是否已经使用cmd:docker login在cmd行中登录了Docker注册表。如何在不尝试推送的情况下测试或查看是否已登录?
编辑2020
再次提到( 已关闭的 )github问题,指出那里没有实际的会话或状态。
docker login实际上并没有创建任何持久性会话,它只是将用户的凭据存储在磁盘上,以便在需要身份验证时可以读取它们以登录
正如其他人指出的那样,成功登录后,会将auths条目/节点添加到~/.docker/config.json文件中(这也适用于 私有 注册表):
auths
~/.docker/config.json
{ "auths": { "https://index.docker.io/v1/": {} }, ...
注销时,此条目将被删除:
$ docker logout Removing login credentials for https://index.docker.io/v1/
docker的内容如下config.json:
config.json
{ "auths": {}, ...
您可以通过脚本或代码来解析此文件,以检查您的登录状态。
您可以使用以下方式登录docker docker login <repository>
docker login <repository>
$ 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:
如果您已经登录,则提示如下:
$ 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 (myusername): # <-- "myusername"
有关的原始说明~/.docker/config.json,请检查问题:如何确定我是否已登录到私有Docker注册表?