美文网首页
docker login

docker login

作者: 哆啦在这A梦在哪 | 来源:发表于2020-08-19 08:49 被阅读0次

    官方资源地址

    说明

    登录Docker注册表

    用法

    docker login [OPTIONS] [SERVER]
    
    

    扩展说明

    登录到注册表。

    有关此命令的示例用法,请参阅下面的示例部分

    选项

    名称,简写 默认 描述
    --password , -p 密码
    --password-stdin 从标准输入密码
    --username , -u 用户名

    例子

    登录自托管注册表

    如果要登录到自托管注册表,则可以通过添加服务器名称来指定。

    $ docker login localhost:8080
    
    

    使用STDIN 提供密码

    要以docker login非交互方式运行命令,可以通过设置 --password-stdin标志来提供密码STDIN。使用 STDIN可以防止密码出现在shell的历史记录或日志文件中。

    以下示例从文件读取密码,并docker login使用将该密码传递给 命令STDIN

    $ cat ~/my_password.txt | docker login --username foo --password-stdin
    
    

    特权用户要求

    docker login要求用户使用sudo或为root,除非以下情况:

    1. 连接到远程守护程序,例如docker-machineProvisioned docker engine
    2. 用户被添加到docker组中。这将影响系统的安全性。该docker组是root等效的。有关详细信息,请参见Docker Daemon Attack Surface

    您可以登录到具有凭据的任何公共或私有存储库。登录时,该命令通过以下步骤将凭据存储在 $HOME/.docker/config.jsonLinux或%USERPROFILE%/.docker/config.jsonWindows上。

    凭证存储

    Docker Engine可以将用户凭据保存在外部凭据存储中,例如操作系统的本机钥匙串。使用外部存储比在Docker配置文件中存储凭证更安全。

    要使用凭据存储,您需要一个外部帮助程序来与特定的钥匙串或外部存储进行交互。Docker要求帮助程序位于客户端的主机中$PATH

    这是当前可用的凭据帮助器的列表,您可以从以下位置下载它们:

    配置凭据存储

    您需要指定凭证存储区,$HOME/.docker/config.json 以告知Docker引擎使用它。config属性的值应为要使用的程序的后缀(即之后的所有内容docker-credential-)。例如,使用docker-credential-osxkeychain

    {
      "credsStore": "osxkeychain"
    }
    
    

    如果您当前已登录,请运行docker logout以从文件中删除凭据,然后docker login再次运行。

    默认行为

    默认情况下,Docker在每个平台上寻找本机二进制文件,即在macOS上为“ osxkeychain”,在Windows上为“ wincred”以及在Linux上为“ pass”。一个特殊的情况是,在Linux上,如果Docker无法找到“ pass”二进制文件,它将退回到“ secretservice”二进制文件。如果这些二进制文件都不存在,则它将凭据(即密码)以base64编码存储在上述配置文件中。

    凭证助手协议

    凭据助手可以是遵循非常简单协议的任何程序或脚本。该协议在很大程度上受到Git的启发,但是在共享信息方面有所不同。

    帮助程序始终使用命令中的第一个参数来标识操作。只有三对这样的说法可能值:storeget,和erase

    store命令从标准输入中获取JSON负载。该有效负载带有服务器地址,以标识凭据,用户名以及密码或身份令牌。

    {
      "ServerURL": "https://index.docker.io/v1",
      "Username": "david",
      "Secret": "passw0rd1"
    }
    
    

    如果要存储的机密是一个身份令牌,则用户名应设置为 <token>

    store命令可以将错误消息写入STDOUTdocker引擎将显示是否存在问题的错误消息。

    get命令从标准输入中获取字符串有效负载。该有效负载带有docker引擎需要凭据的服务器地址。这是该有效负载的一个示例:https://index.docker.io/v1

    get命令将JSON有效负载写入STDOUT。Docker从此负载读取用户名和密码:

    {
      "Username": "david",
      "Secret": "passw0rd1"
    }
    
    

    erase命令从中获取字符串有效负载STDIN。该有效负载带有docker引擎要删除其凭据的服务器地址。这是该有效负载的一个示例:https://index.docker.io/v1

    erase命令可以将错误消息写入STDOUTdocker引擎将显示是否存在问题的错误消息。

    凭证助手

    凭证助手与上面的凭证存储类似,但充当指定程序来处理特定注册表的凭证。默认凭据存储区(credsStore或配置文件本身)将不会用于与指定注册表的凭据有关的操作。

    配置凭证助手

    如果您当前已登录,请运行docker logout以从默认存储中删除凭据。

    凭据助手的指定方式与相似credsStore,但允许一次配置多个助手。键指定注册表域,值指定要使用的程序后缀(即之后的所有内容docker-credential-)。例如:

    {
      "credHelpers": {
        "registry.example.com": "registryhelper",
        "awesomereg.example.org": "hip-star",
        "unicorn.example.io": "vcbait"
      }
    }
    
    

    父命令

    命令 描述
    docker Docker CLI的基本命令。

    登录阿里云实际例子

    登陆阿里云私有镜像:

    docker login --username=shitingbao registry.cn-hangzhou.aliyuncs.com
    
    

    输入密码,登陆成功后。Docker会将token信息存储在~/.docker/config.json文件中,从而作为拉取私有镜像的凭证。

    相关文章

      网友评论

          本文标题:docker login

          本文链接:https://www.haomeiwen.com/subject/iphkjktx.html