问题标签 [dockerode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
98 浏览

node.js - 如何使用 docker http API 进行绑定

更新

我想我需要使用 .run 而不是 .createContainer

我得到了命令在没有安装的情况下工作但是我不确定如何将 docker 容器绑定到我的 cwd

如果未注释,注释的行 (2-6) 会导致错误Scan Aborted: invalid option: --mount

我被允许添加这些创建参数,我认为我需要使用volume,但我不确定。

OG邮报

我正在尝试使用dockerode来执行这个 docker 命令docker run --rm --mount type=bind,source=$HOME/docker-bind,target=/output wpscanteam/wpscan:latest -o /output/wpscan-output.json --format json --url 'https://example.com/'

这是我尝试过的,但是当我运行它时,它使容器具有正确的命令,但是它(几乎)立即退出,并且当我docker container inspect创建的容器没有安装的卷时

我不确定Mount我应该使用正确的参数,但我认为这不是问题所在,因为 docker 实例在 <.5secs 内停止,当我在 WSL 中运行命令时,运行大约需要 10 秒,所以我不要认为我的cmd:[]论点正在执行。

当我在 WSL 2 中运行此命令docker run --rm --mount type=bind,source=$HOME/docker-bind,target=/output wpscanteam/wpscan:latest -o /output/wpscan-output.json --format json --url 'https://example.com/' 时,它可以完美地将 JSON 放置在我磁盘上的 docker-bind 文件夹中。

将此命令转换为我使用的 dockerodeprocess.cwd()而不是 $HOME 时,因为 $HOME 是 WSL 功能。(我的项目目录中也有该docker-bind文件夹,所以这应该不是问题)

我对 docker 非常有经验,但这超出了我的专业知识。

tl; dr 我有一个 docker 命令,我需要将输出放入我的项目目录中的文件夹中。它需要能够使用 Node.js 运行

如果有更好的库得到很好的支持,请告诉我。

Docker Docs为您提供方便 (1.42)

0 投票
2 回答
60 浏览

typescript - 如何通过 dockerode 在 listNetworks 中使用过滤器?

我想列出具有特定名称的 docker 网络,并且我尝试使用类似的选项

但是当我尝试运行这个脚本时,我得到了所有网络,那么我怎样才能只获得名称为“qwerty”的网络?图片如下。
在此处输入图像描述

0 投票
1 回答
86 浏览

node.js - dockerode 流“数据”侦听器回显写入数据

我试图弄清楚为什么 dockerode 流将写入流的所有数据直接定向到流的输出。

这就是我创建容器的方式,我在对象上调用.write()方法。this.stream

但是,在将此流连接到连接到 xterm.js 的 websocket 后,我​​注意到如果我/bin/sh通过cmd参数启动 shell 并写入结果,我运行的命令会在侦听this.stream器上回显给我。this.stream.on("data", ...)

例如,如果我写ls\n,传入的数据.on("data",...)看起来像

如何防止它ls向我回显“”?

这是在服务器上进行流写入和读取的代码:

0 投票
0 回答
23 浏览

node.js - 如何在 nodejs 中使用过滤器修剪 docker 网络?

我想使用 dockerode 修剪 5 分钟前在我的节点应用程序中创建的所有未使用的 docker 网络

但它没有删除任何网络。帮助!

0 投票
0 回答
61 浏览

node.js - 如何将 docker 日志传递给 dockerode 中的流?

目前,我能够将 docker 日志传递到outputStreamdocker.run方法中。

但是docker.run,如果我想使用docker.getContainer来获取现有的已停止容器然后启动它,而不是使用 ,该怎么办?如何捕获日志并将它们传递给流?

0 投票
1 回答
69 浏览

docker - Dockerode没有打开两个端口

当我尝试在创建选项中创建第二个端口时,它会正确创建第一个端口,但不会创建第二个端口。

这应该暴露 4566 和 443,但是当我检查新创建的容器时,它有这个信息。

您可以看到 4566 设置正确,但 443/0 : null 用于 443 端口。我已经尝试过没有 ExposedPorts 部分,更改了 HostOptions 的顺序等。但它仍然无法正常工作。有任何想法吗?

0 投票
0 回答
116 浏览

dockerode - 如何使用带有 aux 地址的 dockerode 创建 docker 网络

我正在尝试使用 javascript dockerode api 创建带有包含 AuxAddress 的 IPAM 配置的 docker 网络。但没有任何效果,我的代码如下所示:

我创建了网络,但是
a)网络的 docker network inspect 没有在 IPAMConfig 中显示 AuxAddress,只有 Subnet 值


b)当我在网络上创建一个容器时,它会获得地址 192.168.1.2,这是它不应该分配的地址。

显然,netConfig 中“AuxAddress”的值不正确,但我一直无法在 javascript 中找到它应该是什么的任何示例。我也试过 aux = {}; 辅助['设备'] = '192.168.1.2'。

0 投票
0 回答
92 浏览

node.js - 如何知道容器已启动并正在运行(Dockerode)?

我正在使用 dockerode 的run命令运行 docker。

一旦 docker 容器运行,我需要做一些事情。我如何知道 docker 容器何时使用 dockerode 库运行?