命令行标准输出到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 等。为此,我认为将输出转换为某种数组很重要。但我不知道这可以做到。任何方向将不胜感激。
您可以使用 grep 和 awk 等 unix 工具自娱自乐,
像
docker ps | grep "wadmiraal/drupal" | awk '{print }'
there you will have ids
当你使用 CLI 时没问题,但如果你编写包装器,事情会变得非常不舒服,因为你将不得不拆分字符串、正则表达式解析字符串、在数组中连接字符串,argh。
但是!
感谢上帝,来自 docker 团队的人已经有了解决方案。
它被称为
Docker Remote API ,我认为它会满足您的需求。
我正在尝试编写一个 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 等。为此,我认为将输出转换为某种数组很重要。但我不知道这可以做到。任何方向将不胜感激。
您可以使用 grep 和 awk 等 unix 工具自娱自乐, 像
docker ps | grep "wadmiraal/drupal" | awk '{print }' there you will have ids
当你使用 CLI 时没问题,但如果你编写包装器,事情会变得非常不舒服,因为你将不得不拆分字符串、正则表达式解析字符串、在数组中连接字符串,argh。
但是!
感谢上帝,来自 docker 团队的人已经有了解决方案。 它被称为 Docker Remote API ,我认为它会满足您的需求。