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

好久没更新博客了,今年整体行业不太乐观,在朋友的引荐下进了新的东家讨口饭吃,难得清静下来一个周末,好吧,废话不多说了,

今天更新了windows 的docker客户端docker-toolbox, 发现原来的docker login -u 用户名 -p 密码 使用不了。
这次更新的应该是最新版:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 安装滴DockerToolbox-18.03.0-ce.exe  

 DOCKER文档是这样描述滴:

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

以下示例从文件读取密码(比如我的密码写在C:\Users\77293\password.txt),然后使用STDIN将其传递给docker login命令:

cat ~/password.txt | docker login --username 用户名--password-stdin  https://xxx.com(docker仓库)

结果TM又报错了

error getting credentials - err: exec: "docker-credential-wincred": executable file not found in %PATH%, out: ``

解决: 修改配置文件 :     $HOME/.docker/config.json 将wincred相关的键值对删掉,就可以了

vim $HOME/.docker/config.json 

比如我这里的是直接删除 :"credsStore": "wincred", 保存,重新登录。

除了以上登录方式,还可以这样登录:

docker login --username 用户名--password-stdin < ~/password.txt https://xxx.com

再介绍一种环境变量的登录方式,以下示例从变量读取密码,然后使用STDIN将其传递给docker login命令:

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

linux下可以通过/etc/profile 设置 PASSWORD变量,windows下可以添加系统环境变量,感兴趣的朋友大家可以试下。


 



posted @ 2020-05-16 12:28  周伯通之草堂  阅读(20918)  评论(1编辑  收藏  举报