如何在windows上使用nodejs与docker daemon通信,并获取docker stats的内容?
问题描述
实验平台为win10,在上面装了docker(18.03.0-ce)并运行了一些容器,借助powershell可通过docker stats获取各个容器占据宿主机的cpu及存储空间的情况,但我希望可以通过nodejs达到同样的效果,即通过nodejs与docker守护进程通信并获取相应信息。
问题出现的环境背景及自己尝试过哪些方法
我开启了docker的远程api(1.37),如下图所示:
尝试使用request模块访问该接口:
const request = require('request');
request('http://localhost:2375/container/s1/stats', (err, res) => {
if(err) {
console.log(err);
console.log('err');
}else {
console.log(res);
console.log('res');
}
})
但存在如下问题:
1、通过上述方法好像调用接口不成功,并不能得到容器的相关属性,具体结果见下图
2、即使调用/container/id/stats接口成功,貌似也不能获取该容器占用的cpu及存储空间比例,不能达到docker stats的效果
3、每次调用只能返回一个结果,希望能够建立通信流实时获取数据,但未找到windows系统下的类似攻略
结果截图:
你期待的结果是什么?
我希望能够在nodejs项目中实时获取docker stats的数据,希望各位路过的大手子能指点一二。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
找到了node-powershell,利用这个库构造虚拟的powershell对象ps,再利用ps来发布docker stats命令并获取结果。面临的新问题就是解析结果。