命令行标准输出到nodejs中的数组

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 }' there you will have ids

当你使用 CLI 时没问题,但如果你编写包装器,事情会变得非常不舒服,因为你将不得不拆分字符串、正则表达式解析字符串、在数组中连接字符串,argh。

但是!

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