©
本文档使用
php.cn手册 发布
登录到 Docker 注册表
docker login [OPTIONS] [SERVER]
名字,简写 | 默认 | 描述 |
---|---|---|
--password, -p | 密码 | |
--username,-u | 用户名 |
命令 | 描述 |
---|---|
docke | Docker 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
。
这是当前可用凭据助手的列表,您可以从以下位置下载它们:
D-Bus Secret Service: https://github.com/docker/docker-credential-helpers/releases
Apple macOS keychain: https://github.com/docker/docker-credential-helpers/releases
Microsoft Windows Credential Manager: 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
再次运行。
凭证助手可以是遵循一个非常简单的协议的任何程序或脚本。这个协议很受 Git 的启发,但它在共享的信息上有所不同。
助手总是使用命令中的第一个参数来标识该操作。只有三对这样的说法可能值:store
,get
,和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" }}