我正在尝试创建一个将自动附加到我现有的python docker容器的命令,并尝试将一堆命令链接在一起。
docker ps | grep "mypythoncontainer" | awk '{print $1}' | xargs docker attach
如果我跑步
docker ps | grep "mypythoncontainer" | awk '{print $1}' | xargs echo
我按预期返回了一个docker id字符串。如果我执行docker attach {id string}
(从上面的语句返回中复制),则它起作用。但是当我在顶部运行完整命令时,出现错误(the input device is not a TTY
)。
因此docker ps | grep "mypythoncontainer" | awk '{print $1}' | xargs echo
会回显abc
,但是docker ps | grep "mypythoncontainer" | awk '{print $1}' | xargs docker attach
会失败,而docker attach abc
会起作用。不确定我不了解的xargs。
答案 0 :(得分:0)
尝试:
docker attach $(docker ps | grep "mypythoncontainer" | awk '{print $1}')
或更简单:
docker attach $(docker ps | awk '/mypythoncontainer/{print $1}')
不确定我不明白的xargs。
运行:...| ... docker ...
将docker
的标准输入重定向到... awk
的输出,{{1}已经读取了}。因此xargs
将
联合国(已关闭) docker abc
损坏,然后失败。