axios请求Docker守护进程

zlhcx6iw  于 2023-01-13  发布在  iOS
关注(0)|答案(1)|浏览(154)

描述:在graphql gateway中我想知道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",
});

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

7rfyedvj

7rfyedvj1#

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

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

相关问题