Docker:通过 CLI 使用 --password 是不安全的。使用 --password-stdin

新手上路,请多包涵

在持续集成 (CI) 过程中登录注册表时,我收到以下警告:

 WARNING! Using --password via the CLI is insecure. Use --password-stdin.

我应该用 --password --password-stdin 吗?

原文由 Dimitri Kopriwa 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.9k
2 个回答

根据 docker 文档:

要以非交互方式运行 docker login 命令,您可以设置 --password-stdin 标志以通过 STDIN 提供密码。使用 STDIN 可以防止密码出现在 shell 的历史记录或日志文件中。

以下示例从文件中读取密码,并使用 STDIN 将其传递给 docker login 命令:

 $ cat ~/my_password.txt | docker login --username foo --password-stdin

或者

$ docker login --username foo --password-stdin < ~/my_password

以下示例从变量中读取密码,并使用 STDIN 将其传递给 docker login 命令:

 $ echo "$MY_PASSWORD" | docker login --username foo --password-stdin

原文由 nickgryg 发布,翻译遵循 CC BY-SA 4.0 许可协议

在基于 Windows 的系统上(或在基于 vs2017-win2016 的 Azure Pipelines 任务中运行时)相同的 echo 命令也会输出一个额外的 换行符

使用 set /p 的解决方法,另请参见 问题 + 答案

完整的命令如下:

echo | set /p="my_password" | docker login --username foo --password-stdin

原文由 Stef Heyenrath 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏