3

是否可以在 Docker Compose 在 Azure WebApp 服务下运行的容器中执行命令?

当我通过 创建单个容器时az container create ...,它可以工作。但是当我使用 Docker compose 脚本创建一组容器时az webapp create --multicontainer-config-type compose ...,它就不起作用了。

从日志中我看到容器myWebApp_myContainer_1正在运行,所以我尝试:

az container exec -g myResourceGroup -n myWebApp_myContainer_1 --exec-command "/bin/bash"

有了这个结果:

找不到资源组“myResourceGroup”下的资源“Microsoft.ContainerInstance/containerGroups/myWebApp_myContainer_1”。

然后我尝试:

az container exec -g myResourceGroup -n myWebApp --container-name myWebApp_myContainer_1 --exec-command "/bin/bash"

有了这个结果:

找不到资源组“myResourceGroup”下的资源“Microsoft.ContainerInstance/containerGroups/myWebApp”。

请注意,通常可以在本地 Docker(在 Azure 之外)上由 Docker compose 脚本启动的容器中执行命令。

更新我不喜欢将 SSH 服务器安装到 Docker 映像中。这是一个不好的方法。我正在寻找一种直接执行的方式az container exec

谢谢你的任何提示。

4

1 回答 1

2

对于您的问题,当从 Docker 映像创建 Web 应用程序时,它只是一个 Web 应用程序,而不是容器。所以你不能使用命令az container exec来连接它。

如果您真的想连接到从 Docker 映像创建的 Web 应用程序,我知道有两种方法可以实现它。

一个是我在评论中描述的,你应该在 Docker 镜像中安装 OpenSSH 服务器。然后从暴露在 Internet 的端口 ssh 进入 Web 应用程序。

您希望的另一个是使用 command az webapp remote-connection。有关更多详细信息,您可以阅读从远程 shell 中打开 SSH 会话

于 2018-07-31T07:13:35.790 回答