命令行stdout到nodejs中的数组

时间:2015-10-18 09:17:41

标签: javascript arrays node.js shell stdout

我正在尝试使用docker命令行工具编写node.js应用程序。我目前的代码如下:

#!/usr/bin/env node

var child_process = require('child_process');

child_process.exec('docker ps -a', function(error, stdout, stderr){
    console.log(stdout);
});

我得到一个示例输出如下: safwan @ ubuntu:〜/ node $ ./cmd-docker.js

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                                                  NAMES
e855320e9547        wadmiraal/drupal    "/bin/sh -c 'exec sup"   2 weeks ago         Exited (137) 12 days ago   3306/tcp, 0.0.0.0:8022->22/tcp, 0.0.0.0:8080->80/tcp   stupefied_mahavira
bd2634e81b18        wadmiraal/drupal    "/bin/sh -c 'exec sup"   2 weeks ago         Exited (0) 2 weeks ago                                                            thirsty_hoover
f131bf78ed86        hello-world         "/hello"                 2 weeks ago         Exited (0) 2 weeks ago    

现在让我可以使用这些输出,我需要能够获得单独的容器ID等。我认为,将输出转换为某种类型的数组非常重要。但我不知道这可以做到。任何方向都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

您可以使用 grep awk 等unix工具来娱乐自己,

之类的东西
  

docker ps | grep" wadmiraal / drupal" | awk' {print $ 1}'   你会有ids

使用CLI时没关系,但是如果你编写包装器,事情会变得非常不舒服,因为你必须拆分字符串,正则表达式解析字符串,连接数组中的字符串,argh。

<强> BUT!

感谢上帝,来自docker团队的人已经有了解决方案。 它被称为 Docker Remote API,我认为它将满足您的需求。