我们可以在 azure 容器实例中执行的所有 POST Rest API 命令

时间:2021-06-23 11:16:40

标签: azure restapi azure-container-instances

我已经构建了一个 docker linux 映像,其中包括 azure cli、kubectl 和 terraform 安装。我已将映像推送到 azure 容器注册表,并使用该映像手动创建了一个容器实例。我的容器运行成功,我可以从 azure 门户连接到它。

但我的要求是,我必须运行一些由微软提供的 Rest API 命令来对容器执行某些操作。我已按照以下 microsoft 文档执行 rest api 命令。 链接:https://docs.microsoft.com/en-us/rest/api/container-instances/containers/execute-command#code-try-0

我刚刚提供了我的容器详细信息并添加了如下正文:

{
  "command": "/bin/bash",
  "terminalSize": {
    "rows": 12,
    "cols": 12
  }
}

运行上述命令后,我收到了 200 条响应。但是当我尝试运行一些不同的命令时,我得到了 200 响应,但输出没有改变。有人可以通过rest api分享我可以在azure容器实例中执行哪些命令等信息。

1 个答案:

答案 0 :(得分:1)

实际上,这个 REST API 是针对在容器中执行 bash 命令的 exec 命令。所以它会创建一个socket session与容器进行通信,返回的是socket session和密码。

对于exec命令,同样对于这个REST API,它只能执行单个命令,如ls/bin/bash。但是如果你想执行多个命令,比如 ls -alcurl $url,那么它就会失败。实际上,ACI 不支持通过 REST API 或 exec 命令运行多个命令。解决方案是使用 Azure CLI 命令 az container exec 运行 bash 命令 /bin/bash,它会为你创建一个套接字会话,就像 SSH 连接一样。然后你可以在容器内运行命令。截图如下:

enter image description here