axios请求docker守护进程



描述:在graphql网关中,我想知道docker中可用的服务,这样我就可以从其他graphql服务中缝合模式。所有的应用程序都在docker中运行。docker compose文件用于启动所有应用程序。Docker引擎确实提供了一个RESTapi来列出所有服务。

在docker内部,我们还应该安装卷

volume
- /var/run/docker.sock:/var/run/docker.sock 

问题:我使用了npm库http,我能够得到的结果

const result = http.request(
{
socketPath: "/var/run/docker.sock",
path: "/containers/json",
},
(response) => {
res.setEncoding("utf8");
res.on("data", (data) => console.log(data));
res.on("error", (data) => console.error(data));
}
);
result.end();

我无法使用axios获得所有的docker服务。我还发现,即使axios有socketPath属性,它也没有路径属性

我使用了以下代码将使用axios:

const axiosResult = await axios({
socketPath: "/var/run/docker.sock",
url: "/containers/json",
method: "GET",
});

我尝试过使用不同的url:http://unix:/var/run/docker.sock/v1.30/containers/json

使用Axios时,必须修改代码以获得结果

const { data } = await axios.get("http://unix:/containers/json", {
socketPath: "/var/run/docker.sock",
});
console.log(data);

最新更新