小编典典

如何知道Docker是否已经登录到Docker Registry服务器

docker

我不确定是否已经使用cmd:docker login在cmd行中登录了Docker注册表。如何在不尝试推送的情况下测试或查看是否已登录?


阅读 1851

收藏
2020-06-17

共1个答案

小编典典

编辑2020

再次提到( 已关闭的
github问题,指出那里没有实际的会话或状态。

docker login实际上并没有创建任何持久性会话,它只是将用户的凭据存储在磁盘上,以便在需要身份验证时可以读取它们以登录

正如其他人指出的那样,成功登录后,会将auths条目/节点添加到~/.docker/config.json文件中(这也适用于 私有 注册表):

{
    "auths": {
            "https://index.docker.io/v1/": {}
    },
    ...

注销时,此条目将被删除:

$ docker logout
Removing login credentials for https://index.docker.io/v1/

docker的内容如下config.json

{
    "auths": {},
    ...

您可以通过脚本或代码来解析此文件,以检查您的登录状态。

替代方法(重新登录)

您可以使用以下方式登录docker 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注册表?

2020-06-17