1、docker login和logout 简介
docker login
是用来登录到registry,docker logout
是用来从registry登出。
2、docker login和logout 语法
1)docker login
docker login [OPTIONS] [SERVER]
2)docker logout
docker logout [SERVER]
参考文档:
https://docs.docker.com/engine/reference/commandline/login/
https://docs.docker.com/engine/reference/commandline/logout/
3、docker login和logout 命令
1)登录到自托管的registry
docker login localhost:8080
或者
docker logout localhost:8080
2)使用STDIN提供密码(--password-STDIN)
要以非交互方式运行docker login命令,可以设置--password-stdin标志,通过STDIN提供密码。使用STDIN可以防止密码出现在shell的历史记录或日志文件中。
cat ~/my_password.txt | docker login --username foo --password-stdin
3)特权用户需求
Docker登录需要用户使用sudo或者是root,除非:
连接到远程守护进程,例如docker-machine提供的docker引擎。
User被添加到docker组。这会影响系统的安全性;docker组与根目录是等价的。可以登录到拥有凭证的任何公共或私有存储库。登录时,该命令将凭据存储在$HOME/.docker/config.json
中。在Linux上使用%USERPROFILE%/.docker/config.json
在Windows上,通过下面描述的过程获取json。
4)配置凭据存储
需要指定凭据存储在$HOME/.docker/config.json
告诉docker引擎使用它。config属性的值应该是要使用的程序的后缀(即docker-credential-
之后的所有内容)。例如,要使用docker-credential-osxkeychain
:
{ "credsStore": "osxkeychain" }
注意:如果当前已登录,请执行docker logout
命令删除文件中的证书,然后再次执行docker login
命令。
5)默认的行为
默认情况下,Docker在每个平台上查找本机二进制文件,即macOS上的“osxkeychain”,windows上的“wincred”,Linux上的“pass”。一个特殊的情况是,在Linux上,Docker将回退到“secretservice”二进制文件,如果它无法找到“pass”二进制文件。如果这些二进制文件都不存在,它会在上面描述的配置文件中以base64编码存储凭据(即密码)。
6)凭证辅助协议
凭证帮助程序可以是遵循非常简单协议的任何程序或脚本。该协议在很大程度上受到Git的启发,但它在共享的信息方面有所不同。
辅助函数总是使用命令中的第一个参数来标识操作。这个参数只有3个可能的值:store、get和erase。
store命令从标准输入中获取一个JSON有效载荷。该有效负载携带服务器地址,用于识别凭据、用户名、密码或身份令牌。
{ "ServerURL": "https://index.docker.io/v1", "Username": "david", "Secret": "passw0rd1" }
如果存储的密钥是标识令牌,则应该将用户名设置为<token>
。
store命令可以将错误消息写入标准输出,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引擎会在出现问题时显示这些错误信息。
7)配置凭证辅助工具
如果当前已登录,请运行docker logout
从默认存储中删除凭据。
以与credsStore类似的方式指定凭据帮助程序,但允许一次配置多个帮助程序。key指定注册表域,values指定要使用的程序的后缀(即docker-credential-之后的所有内容)。例如:
{ "credHelpers": { "registry.example.com": "registryhelper", "awesomereg.example.org": "hip-star", "unicorn.example.io": "vcbait" } }
4、选项说明
简称 | 默认 | 描述 |
--password , -p | 密码 | |
--password-stdin | 从stdin中获取密码 | |
--username , -u | 用户名 |