我正在尝试使用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等。我认为,将输出转换为某种类型的数组非常重要。但我不知道这可以做到。任何方向都将受到高度赞赏。
答案 0 :(得分:1)
您可以使用 grep 和 awk 等unix工具来娱乐自己,
之类的东西docker ps | grep" wadmiraal / drupal" | awk' {print $ 1}' 你会有ids
使用CLI时没关系,但是如果你编写包装器,事情会变得非常不舒服,因为你必须拆分字符串,正则表达式解析字符串,连接数组中的字符串,argh。
<强> BUT!强>
感谢上帝,来自docker团队的人已经有了解决方案。 它被称为 Docker Remote API,我认为它将满足您的需求。