繁体   English   中英

命令行标准输出到Node.js中的数组

[英]Command line stdout to array in nodejs

我正在尝试编写一个node.js应用程序以与docker命令行工具接口。 我当前的代码如下:

#!/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等。为此,将输出转换为某种数组很重要。 但是我不知道这是可以做到的。 任何方向将不胜感激。

您可以使用诸如grepawk之类的unix工具来娱乐自己,例如

docker ps | grep“ wadmiraal / drupal” | awk'{print $ 1}' ,您将获得ID

使用CLI可以,但是如果编写包装程序,事情可能会非常不舒服,因为您将不得不分割字符串,正则表达式解析字符串,将字符串加入数组中,等等。

但!

感谢上帝,码头工人团队的家伙已经有了解决方案。 它称为Docker Remote API ,我认为它将满足您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM