为什么docker登录存储我的密码在一个未加密的文件夹,我应该做些什么?



我有一个在Docker容器内运行的应用程序,它不断被推送到Azure容器注册表。作为管道的一部分,我使用步骤:

docker login <Docker Server> -u <Username> -p <Password>

当管道运行这一步时,我得到以下警告:

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.

我应该做些什么吗?你有什么建议的解决方案吗?

使用Docker login命令登录私有镜像注册表后,系统会提示密码未加密。

默认情况下,Docker将未加密的登录密码存储在/root/. Docker/config文件中。Docker配置文件。这是Docker的默认行为。

解决问题

你可以将用户凭证存储在外部凭证存储库中,而不是存储在Docker配置文件中。将凭据存储在凭据存储库中比将凭据存储在Docker配置文件中更安全。查看更多信息。

根据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登录命令:

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

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

https://www.ibm.com/docs/en/cloud-private/3.2.0?topic=login-docker-results-in-unencrypted-password-warning

相关内容

  • 没有找到相关文章

最新更新