Reactjs 从浏览器中的react应用程序调用docker引擎api时连接被拒绝

Reactjs 从浏览器中的react应用程序调用docker引擎api时连接被拒绝,reactjs,docker,http,Reactjs,Docker,Http,我有一个react应用程序,当用户单击按钮时,我想从中调用docker引擎api来启动容器。我编写的bash脚本中有一系列命令,我正试图在浏览器中复制这些命令。第一个命令是创建一系列卷 docker volume create volume-test 当我使用axios从应用程序向docker引擎发送http请求时,第一次尝试创建卷时,我收到一个连接被拒绝错误。在我的命令行中使用curl运行相同的命令时,将创建卷 有人能解释一下为什么以及如何解决这个问题吗 使用curl命令创建卷 curl -

我有一个
react应用程序
,当用户单击按钮时,我想从中调用docker引擎api来启动容器。我编写的bash脚本中有一系列命令,我正试图在浏览器中复制这些命令。第一个命令是创建一系列卷

docker volume create volume-test
当我使用
axios
从应用程序向docker引擎发送http请求时,第一次尝试创建卷时,我收到一个
连接被拒绝
错误。在我的命令行中使用
curl
运行相同的命令时,将创建卷

有人能解释一下为什么以及如何解决这个问题吗

使用curl命令创建卷

curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Name": "volume-test"}' -X POST http://localhost/v1.41/volumes/create
来自react应用程序的Axios api调用失败:

async generateDockerVolumes() {
    try {
      const res = await axios({
        method: "POST",
        url: "http://localhost/v1.41/volumes/create",
        socketPath: "/var/run/docker.sock",
        data: {
          Name: "volume-test",
        },
      });
      console.log("Response from axios ", res);
    } catch (err) {
      console.log("Error generating docker volumes ", err);
      return null;
    }
  }

你不能这样做。请记住,如果您可以启动一个容器,那么您可以非常轻松地在整个主机上创建根目录。浏览器通常配置为不允许访问主机文件系统(因此您无法访问
/var/run/docker.sock
套接字)。考虑这是什么意思,如果这是可能的,一个任意的网络托管广告可以启动这样的容器(或任何其他过程),而没有特定的“用户点击一个按钮”的要求。好点。我认为这是不可能的,但就像所有的事情一样,可能有人管理了它。谢谢:)@DavidMaze我想这对离线运行的渐进式Web应用没有什么不同?