使用Docker时的az容器执行

时间:2018-07-26 12:55:29

标签: 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"

结果如下:

  

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

然后我尝试:

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

结果如下:

  

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

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

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

谢谢您的提示。

1 个答案:

答案 0 :(得分:0)

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

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

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

您希望使用的另一个命令是使用az webapp remote-connection命令。有关更多详细信息,您可以阅读Open SSH session from remote shell