Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何阻止docker尝试保存我的凭据?_Docker - Fatal编程技术网

如何阻止docker尝试保存我的凭据?

如何阻止docker尝试保存我的凭据?,docker,Docker,默认情况下,docker login存储我的凭据 %HOMEPATH%/.docker/config.json中有一个名为“credstore”的属性,允许您选择要使用的凭据管理器。 例如,“CredStore”:“wincred”将使用Windows凭据管理器 从配置文件中完全删除credstore,并不会像预期的那样阻止docker尝试存储凭据;相反,它以明文形式存储我的敏感秘密 我希望它每次都提示我输入用户名/密码。 每次。 如何阻止docker尝试保存我的凭据 这不是docker CLI

默认情况下,
docker login
存储我的凭据

%HOMEPATH%/.docker/config.json
中有一个名为“credstore”的属性,允许您选择要使用的凭据管理器。
例如,
“CredStore”:“wincred”
将使用Windows凭据管理器

从配置文件中完全删除
credstore
,并不会像预期的那样阻止docker尝试存储凭据;相反,它以明文形式存储我的敏感秘密

我希望它每次都提示我输入用户名/密码。
每次。


如何阻止docker尝试保存我的凭据

这不是docker CLI的选项

CLI本身是docker引擎API的前端,因此您可以编写自己的客户端来实现这一点。如果你真的想要这个功能,我将把它作为练习留给读者

您还可以从装载套接字的临时容器内部执行这些操作,以便在容器退出时销毁所有登录凭据,例如

docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock docker /bin/sh -c "docker login && docker push ..."
或者,您可以编写一个登录/注销命令来包装您的
docker push
,但您需要避免竞争条件。e、 g

#!/bin/sh
docker login
docker push "$@"
docker logout

调用该脚本
docker push
并运行该脚本,而不是
docker push

,您可以使用keychain或
pass
密码管理器作为替代选项。我不想使用它们或任何其他密码管理器。您也可以使用
docker注销
(响应已删除的注释)。注销应清除
~/.docker/config.json
中的凭据。如果桌面环境将凭据存储在凭据管理器中,则可能会添加清除该项的步骤。如果您还没有,我建议您使用Docker Hub的2fa和令牌,而不是您的密码登录
Docker
。您可以为每个位置使用不同的令牌,它只允许访问推/拉,而不允许访问网站。