码头工人登录
描述
登录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
或be root
,除非在以下情况下:
- 连接到远程守护程序,例如
docker-machine
Provisioneddocker engine
。 - 用户被添加到
docker
组中。这将影响系统的安全性。该docker
组是root
等效的。有关详细信息,请参见Docker Daemon Attack Surface。
您可以登录到拥有凭据的任何公共或私有存储库。登录时,该命令通过以下步骤将凭据存储在
$HOME/.docker/config.json
Linux或%USERPROFILE%/.docker/config.json
Windows上。
凭证存储
Docker引擎可以将用户凭据保存在外部凭据存储中,例如操作系统的本机钥匙串。使用外部存储比在Docker配置文件中存储凭证更安全。
要使用凭据存储,您需要一个外部帮助程序来与特定的钥匙串或外部存储进行交互。Docker要求帮助程序位于客户端的主机中$PATH
。
这是当前可用的凭据帮助器的列表,您可以从以下位置下载它们:
- D-Bus特勤局:https://github.com/docker/docker-credential-helpers/releases
- Apple macOS钥匙串:https://github.com/docker/docker-credential-helpers/releases
- Microsoft Windows凭据管理器:https://github.com/docker/docker-credential-helpers/releases
- 通过:https://github.com/docker/docker-credential-helpers/releases
配置凭据存储
您需要指定凭证存储区,$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的启发,但是在共享信息方面有所不同。
帮助程序始终使用命令中的第一个参数来标识操作。只有三对这样的说法可能值:store
,get
,和erase
。
该store
命令从标准输入中获取JSON负载。该有效负载带有服务器地址,以标识凭据,用户名以及密码或身份令牌。
{
"ServerURL": "https://index.docker.io/v1",
"Username": "david",
"Secret": "passw0rd1"
}
如果要存储的机密是一个身份令牌,则用户名应设置为
<token>
。
该store
命令可以将错误消息写入STDOUT
docker引擎将显示是否存在问题的错误消息。
该get
命令从标准输入中获取字符串有效负载。该有效负载带有docker引擎需要其凭据的服务器地址。这是该有效负载的一个示例:https://index.docker.io/v1
。
该get
命令将JSON有效负载写入STDOUT
。Docker从此有效负载中读取用户名和密码:
{
"Username": "david",
"Secret": "passw0rd1"
}
该erase
命令从中获取字符串有效负载STDIN
。该有效负载带有docker引擎要为其删除凭据的服务器地址。这是该有效负载的一个示例: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"
}
}
上级命令
命令 | 描述 |
---|---|
码头工人 | Docker CLI的基本命令。 |