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

发布于 2022-09-12 00:59:33 字数 933 浏览 16 评论 0

问题描述

实验平台为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的数据,希望各位路过的大手子能指点一二。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寒冷纷飞旳雪 2022-09-19 00:59:33

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文