azure - 使用 Docker compose 时的 az 容器 exec

标签 azure azure-web-app-service azure-cli azure-container-service azure-container-instances

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

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

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

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

结果如下:

The Resource 'Microsoft.ContainerInstance/containerGroups/myWebApp_myContainer_1' under resource group 'myResourceGroup' was not found.

然后我尝试:

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

结果如下:

The Resource 'Microsoft.ContainerInstance/containerGroups/myWebApp' under resource group 'myResourceGroup' was not found.

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

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

感谢您的任何提示。

最佳答案

对于您的问题,当从 Docker 镜像创建 Web 应用程序时,它只是一个 Web 应用程序,而不是容器。因此,您无法使用命令 az container exec 来连接到它。

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

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

您希望的另一种方法是使用命令 az webapp Remote-connection。更多详情,您可以阅读Open SSH session from remote shell .

关于azure - 使用 Docker compose 时的 az 容器 exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51539381/

相关文章:

azure - Paas 环境中的服务堆栈

c# - 如何在 sql azure 上运行 aspnet_regsql?

Azure Functions 临时存储

Azure 容器注册表 (ACR) 运行与 Azure 容器实例 (ACI) 创建

rest - ResourceNotFound,找不到资源组 '...' 下的资源 Microsoft.DataFactory/factories/...

entity-framework - 不支持关键字 : 'metadata' error in Azure function

azure - 在 Azure 门户中禁用 SMBv3

azure - 如何减少 Windows Azure 网站上托管的 Orchard CMS 网站的内存消耗

docker - 无法在 MacOS 上运行 az acr check-health 命令

azure - 如何通过命令行界面将作业(jar)提交到Azure Spark集群?