是否可以在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
一样的直接执行方式。
谢谢您的提示。
答案 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。