【问题标题】:az container exec when using Docker compose使用 Docker compose 时的 az container exec
【发布时间】:2018-07-26 12:55:29
【问题描述】:

是否可以通过 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"

有了这个结果:

资源“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 compose 脚本启动的容器中执行命令。

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

感谢您的任何提示。

【问题讨论】:

  • 当你从一个 docker 镜像创建一个 web 应用时,它是一个 web 服务,而不是一个容器。如果你想连接它,你可以在 docker 镜像中安装 OpenSSH。为此,您可以尝试关注此link
  • 我想要一个更干净的解决方案,然后使用 SSH 服务器污染 docker 映像,在那里运行另一个进程并为 Azure 提供不同版本的映像。我希望会有类似“az webapp container exec ...”的东西。
  • 如果您只是想找到一种连接网络应用程序的方法或只需要 CLI 命令?
  • 我想要一个 CLI 命令,但它似乎不存在 :-( 抱歉,将 SSH 服务器安装到每个 Docker 映像中是一种不好的做法,对我来说没有办法。跨度>

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


【解决方案1】:

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

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

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

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

【讨论】:

  • 容器仍然在 Web 应用程序的后台运行,在这种情况下,Web 应用程序仅作为该容器的代理。但我知道az container exec 不应该工作,我希望有像“az webapp container exec”这样的网络应用程序的替代品。例如,类似于在 Kubernetes 中使用 kubectl exec 命令,它将 docker exec 命令代理到在 K8s pod 中运行的目标容器。 az webapp remote-connection 还需要将 SSH 服务器安装到 Docker 映像中:-(
  • @cgrim 你说的好像Azure Web 不支持吧。也许将来会支持它。如果你想连接到网络,据我所知,目前只有两种方式。
  • @cgrim 如果答案有帮助,您可以接受它作为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-15
  • 2021-09-25
  • 2023-03-28
  • 2021-08-17
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
相关资源
最近更新 更多