Docker 17
引擎: CLI | Engine: CLI

docker login

docker login

描述

登录到 Docker 注册表

用法

docker login [OPTIONS] [SERVER]

备选方案

名字,简写默认描述
--password, -p密码
--username,-u用户名

父命令

命令描述
dockeDocker CLI的基本命令。

扩展描述

登录到注册表。

登录到自我托管的注册表

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

$ docker login localhost:8080

特权用户需求

docker login要求用户使用sudo或者是root,除非:

1. 连接到远程守护进程,如预docker-machine配置docker engine

2. 用户被添加到docker组中。这会影响你系统的安全性; 该docker组是root等同的。有关详细信息,请参阅 Docker 守护进程攻击面。

您可以登录到您拥有凭据的任何公共或私人存储库。登录时,该命令将编码的凭据存储$HOME/.docker/config.json在 Linux 或%USERPROFILE%/.docker/config.json Windows 上。

凭证存储

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

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

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

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

{ "credsStore": "osxkeychain" }

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

凭证帮助程序协议

凭证助手可以是遵循一个非常简单的协议的任何程序或脚本。这个协议很受 Git 的启发,但它在共享的信息上有所不同。

助手总是使用命令中的第一个参数来标识该操作。只有三对这样的说法可能值:storeget,和erase

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

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

如果存储的秘密是身份标记,则应将用户名设置为<token>。

store命令可以写入错误消息,STDOUT以便在出现问题时 Docker 引擎将显示该消息。

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

get命令将 JSON 有效内容写入STDOUT。Docker 从这个有效载荷中读取用户名和密码:

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

erase命令从中获取字符串有效内容STDIN。该有效负载携带码头引擎想要为其移除凭据的服务器地址。这是有效载荷的一个例子:https://index.docker.io/v1

erase命令可以写入错误消息,STDOUT以便在出现问题时 Docker 引擎将显示该消息。

凭证助手

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

注销

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

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

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