2015-10-18 76 views
0

我正在尝试编写一个node.js应用程序来与docker命令行工具进行接口。我当前的代码如下:命令行标准输出到nodejs中的数组

#!/usr/bin/env node 

var child_process = require('child_process'); 

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

我得到一个输出样本如下: 萨夫万@ Ubuntu的:〜/节点$ ./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

可以使用Unix工具像的grepAWK, 像

泊坞窗PS自娱自乐| grep“wadmiraal/drupal”| AWK“{打印$ 1}” 那里,你将有IDS

当您使用CLI没事的,但如果你写的德包装,事情会非常不舒服的方式,因为你将不得不分割字符串,正则表达式解析字符串,在数组中连接字符串,argh。

但是!

谢天谢地,码头团队的人已经有了解决方案。 它被称为 Docker Remote API,我认为它会满足您的需求。