什么是“docker-credential-desktop”?

day*_*oli 14 docker docker-desktop

在运行 macOS Big Sur 的 MacBook Pro 上,我安装了以下 Docker凭据帮助程序

% docker-credential-[TAB]
docker-credential-desktop      docker-credential-ecr-login    docker-credential-osxkeychain
Run Code Online (Sandbox Code Playgroud)

我不记得安装过docker-credential-desktopdocker-credential-osxkeychain所以它一定是在我安装 Docker Desktop 时安装的。

我知道 和docker-credential-ecr-logindocker-credential-osxkeychain但我找不到任何关于 的文档docker-credential-desktop很多人也对此感到好奇我认为这与Docker Desktop专门有关。

运行docker-credential-desktop list给出与 相同的输出docker-credential-osxkeychain list,这也是一些 用户在 GitHub 上找到的结果。

% docker-credential-desktop list
{"https://<account-id>.dkr.ecr.<region>.amazonaws.com":"AWS"}
% docker-credential-osxkeychain list 
{"https://<account-id>.dkr.ecr.<region>.amazonaws.com":"AWS"}
Run Code Online (Sandbox Code Playgroud)

这让我认为这docker-credential-desktop只是一个包装docker-credential-osxkeychain。然而,看看实际的二进制文件,它docker-credential-desktop是 14M,而docker-credential-osxkeychain.

% ls -ahl /Applications/Docker.app/Contents/Resources/bin/docker-credential-*
-rwxr-xr-x  1   14M Sep  5 16:14 docker-credential-desktop
-rwxr-xr-x  1   10M Sep  5 16:14 docker-credential-ecr-login
-rwxr-xr-x  1  2.8M Jul  7 10:59 docker-credential-osxkeychain
Run Code Online (Sandbox Code Playgroud)

那么什么是docker-credential-desktop凭证助手呢?为何docker-credential-osxkeychain不足?

vij*_*oli -1

Docker 凭证助手是帮助 Docker CLI 安全地存储和检索容器注册表身份验证信息的工具

Docker Desktop 使用的具体凭据帮助程序取决于操作系统:

在 macOS 上,默认凭据助手是docker-credential-osxkeychain. 在 Windows 上,它是docker-credential-wincreddocker-credential-desktop。在 Linux 上,它可以是docker-credential-secretservicedocker-credential-gnome-keyringdocker-credential-desktop。现在,让我们关注为什么docker-credential-osxkeychain可能被认为是不够的macOS

macOS 上的 Docker 凭据助手:docker-credential-osxkeychain:

这是 macOS 上的默认凭据助手。它将 Docker 凭证存储在 macOS 钥匙串中,提供安全的存储机制。它适用于许多用户和环境。docker-credential-desktop 上macOS

引入 docker-credential-desktop 是为了解决用户使用默认凭据助手时可能遇到的一些问题或限制。它旨在根据用户需求提供额外的灵活性或功能。