如何在脚本中向docker login命令呈现凭据?

我使用的bash脚本基本上自动化了设置自定义虚拟机等的整个过程,但当我需要在脚本中登录docker以获取图像时,我会出现以下错误:

用户名:FATA[0000]设备的ioctl不合适


( echo "xxx"; echo "yyy"; echo "zzz" ) | docker login docker.somesite.org


这是否可能在不使用和处理现有.dockercfg个文件的情况下实现,

推荐答案

Docker 18及以上

现在有officially-documented种方法可以做到这一点:

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

Docker 1.11至Docker 17

可以在命令行上传递所有参数:

docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST

如果你不指定DOCKER_HOST,你会得到主Docker回购.如果你漏掉了任何一个参数,系统会提示你输入该参数.

大于1.11

与上面的路径相同,只是需要also传递--email标志.这篇文章的内容实际上没有经过判断,所以一切正常:

docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST --email whale@docker.com

Linux相关问答推荐

erlang 格式的 utf8 变为 \x(反斜杠 x)ascii 编码

8 个半小时范围的 Crontab 表达式

递归/详尽地将点插入字符串

如何使用 awk 重新排列列?

如何在ubuntu中通过.sh文件启动多个服务

查找更高版本的文件

使用 Dockerfile RUN 执行某些操作但忽略错误

BASEDIR 环境变量未正确定义

crontab 命令单独一行

Linux批量转换:使用转换更改jpg的质量但保留其名称

NGINX:connect() 到 unix:/var/run/php7.0-fpm.sock 失败(2:没有这样的文件或目录)

如何使用 Ansible 等待服务器重启?

命令列出除 . (点)和..(点点)

Mac OS X 中的 ldconfig 等效项?

try 使用 sudo 将文件附加到根拥有的文件时权限被拒绝

C++:使用 longjmp 和 setjmp 安全吗?

仅使用 proc 获取本地网络接口地址?

rename() 是原子的吗?

bash / Makefile中双美元符号的含义是什么?

在 Linux 中,名称与正则表达式匹配的文件的磁盘使用情况?