Docker注册表登录文件在哪里?

10

我正在更换 Mac,但不记得我的 Docker 注册表登录信息。我可以重置所有内容,但我更愿意将散列的登录文件复制到新的 Mac 上。

在 OSX、Linux 和 Windows 上,Docker 注册表凭据存储在何处?

2个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
11

我能在~/.docker/config.json文件中找到所需的信息。

将此文件从一个OSX安装复制到另一个安装中,可以让我在不再请求凭证的情况下进行注册表身份验证。

该文件如下所示:

{
    "auths": {
        "registry.domain.com": {
            "auth": "HASH_HERE",
            "email": "user@domain.com"
        }
    }
}

小修正:HASH_HERE 不是一个哈希,而是实际的以 username:password 标记的 base64 编码凭据。非常适合与 curl 结合使用。但从安全角度来看并不完美。 - undefined

1
如果你遇到本地Docker注册表 V2(发布)身份验证的问题,请查找用于docker run注册表的auth/htpasswd(或只是htpasswd)文件。 在Windows或Mac上,该文件将在VM中创建,在/c/Users/.../Users/...下,因为这些是boot2docker映像挂载的持久文件夹。 正如OP spechal所评论的那样,登录本身保存在~/.docker/config.json中。
例如,此问题说明了这一点。
WARNING: login credentials saved in /var/lib/jenkins/.docker/config.json
Login Succeeded
pushing docker image 0fd658e25fd8 from 06bdc8f-1508171450 to docker-registry.tld:5043/repo/ingest_preview:06bdc8f-1508171450
The push refers to a repository [docker-registry.tld:5043/repo/ingest_preview] (len: 1)

虽然这个答案很有帮助,但我需要本地Docker身份验证信息。我在~/.docker/config.json中找到了它。 - Spechal
@Spechal 很好。我已经将您的评论包含在答案中,以增加可见性。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,