如何在windows上使用nodejs与docker daemon通信,并获取docker stats的内容?

问题描述

实验平台为win10,在上面装了docker(18.03.0-ce)并运行了一些容器,借助powershell可通过docker stats获取各个容器占据宿主机的cpu及存储空间的情况,但我希望可以通过nodejs达到同样的效果,即通过nodejs与docker守护进程通信并获取相应信息。

问题出现的环境背景及自己尝试过哪些方法

我开启了docker的远程api(1.37),如下图所示:
image.png
尝试使用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系统下的类似攻略
结果截图:
image.png

你期待的结果是什么?

我希望能够在nodejs项目中实时获取docker stats的数据,希望各位路过的大手子能指点一二。

阅读 2.5k
1 个回答

找到了node-powershell,利用这个库构造虚拟的powershell对象ps,再利用ps来发布docker stats命令并获取结果。面临的新问题就是解析结果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题