从bash文件执行docker命令

时间:2017-05-15 16:49:18

标签: bash docker scripting

如何从bash(sh)脚本运行docker命令?我想跑:

#!/bin/bash
container= $(docker ps --format "{{.ID}} {{.Names}}" -a | grep testServer | awk '/'$imid'/ { print $1 }');
echo $container

但我得到了容器的空白。

TIA

2 个答案:

答案 0 :(得分:1)

看起来容器id打印到sterr,而$()构造只捕获stdout。

根据this comment,你可以使用2>&1将stderr重定向到stdout,但是我不太确定如何在你的片段中使用grep / awk链接。

答案 1 :(得分:0)

进行了一些测试 - 如建议的那样 - 并发现以下工作来自bash。

#!/bin/bash
container=$(docker ps --format "{{.ID}} {{.Names}}" -a | grep testServer  | awk '/'$imid'/ { print $1 }')
echo $container
if [[ $container = *[!\ ]* ]]; then
        echo "found something";
else
        echo "DID NOT find anything";
fi

我想我只是不得不再玩它了。