Docker 密码存储在 .docker/config.json

Docker password store in .docker/config.json

.docker/config.json 中,我看到我的密码存储为 QA=="。我的密码以 @.

结尾
{
    "auths": {
        "registry.nmlv.nml.com": {
            "auth": "QA==",
            "email": "foo@bar.com"
        }
    },
    "HttpHeaders": {
        "User-Agent": "Docker-Client/19.03.4 (darwin)"
    }
}

auth 属性 实际上是 username:password 的 base64,但是我的密码 base64 将以 QAo= 结尾。我想知道 docker 是如何更改密码的?

我使用了base64 <<< @命令

当您在命令行手动对字符串进行 base64 编码时,需要注意不要包含换行符。 echo -n 对此很有帮助。

$ echo -n '@' | base64
QA==

这与您的 .docker/config.json 文件中的内容相匹配。如果我解码你的其他字符串

$ echo -n 'QAo=' | base64 -D | od -t x1
0000000    40  0a

它包含两个字节,ASCII 0x40(@)和 0x0a(换行符)。