为什么Docker登录命令会在我的电脑上保存未加密的密码?

24

我已经使用了docker login命令并传递了我的凭据,但是我收到了警告WARNING: login credentials saved in /Users/{my_username}/.docker/config.json。我检查了那个文件,确实我的密码以未加密的方式保存在那里(只进行了base64编码)。

为什么docker要将我的密码保存为未加密的形式?它不应该将其保存在我的密钥链中(我使用的是Mac OS),或者在保存密码而不是生成某些访问令牌之类的东西吗?

3个回答

12

2
是否可以在没有先进行“docker login”的情况下运行命令?例如,通过将用户名/密码与特定命令一起传递来实现? - user606521
2
不,那个问题也已经涵盖在其中了。 - Adrian Mouat
我认为在解决这个问题之前的一个临时措施是使用环境变量来存储凭据,就像你可能为具有私有API密钥的Web主机做的那样。 - Incognito
哈哈,已经修好了吗? - TsgabiXD
1
@TsgabiXD 是的,我已经更新了我的答案。 - Adrian Mouat

1
您可以使用凭据存储来实现此目的。以下是 Docker 的官方文档:凭据存储

没有示例的文档不具有信息量。 - Dmitrii Kalashnikov
我提供了官方Docker解决方案的关键词和文档页面。因为问题是关于一般概念而不是特定实现问题。此外,Adrian的答案并不是一个合适的解决方案,只是一个技巧,我记得他显然根据我的关键词改变了他的答案。我们可以感谢他。在这里没有人需要解释凭据存储,如果您在实施过程中遇到问题,可以在这里询问有关该特定情况的问题。如果官方文档无法帮助您,那么没有人能够帮助您,卡拉什尼科夫先生。 - Ferhat

0
对我来说,它位于/root/.docker/config.json。我不得不使用sudo -s才能导航到那里,至少这样我才能删除它...
解决方案:
  • docker login --password-stdin
  • 或者,不要使用docker login;你可能不需要它!尝试使用sudo来运行你的docker pull命令。

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