【问题标题】:Run new docker container (service) from another container on some command在某个命令上从另一个容器运行新的 docker 容器(服务)
【发布时间】:2019-12-03 13:11:41
【问题描述】:

是否有任何方法可以做到这一点:

  • 使用主应用程序 - 服务器(flask 应用程序)运行一项服务(容器);
  • 服务器允许运行其他服务,它们也是烧瓶应用程序;
  • 但我想在单独的容器中运行每个新服务

例如,我在服务器上有端点/services/{id}/run,每个id 都是一些服务ID。所有服务的 Docker 镜像都是相同的,每个服务都运行在不同的端口上。

我想要这样的东西:

对服务器的请求 - <host>//services/<id>/run -> 服务器上的应用程序发出一些神奇的命令/向某处发送消息 -> 具有 id 的服务在新容器中启动。


我知道至少在本地我可以使用 docker-in-docker 或简单地将 docker 套接字安装在容器中并在此容器内使用 docker。但我想找到跨多台机器工作的方法(每个服务都可以在另一台机器上运行)。

对于 Kubernetes:我知道如何创建和运行 pod 和部署,但我找不到如何根据另一个容器的命令运行新容器。我可以以某种方式从容器与 k8s 通信以运行新容器吗?


一般:

  • 我可以从另一个不使用 docker-in-docker 和安装 docker 套接字的容器运行新容器

  • 我可以使用/不使用 Kubernetes 吗?


感谢您的提前。

【问题讨论】:

  • 这不是最佳做法。在 Kubernetes 中,它比在普通 Docker 中的风险要小一些(查看如何调用 Kubernetes API),但它管理起来很复杂,并且很容易让您面临拒绝服务攻击。更好的是使用像 RabbitMQ 这样的作业队列和可以由 Deployment 对象管理的 worker。
  • 我知道这不是最佳做法。所以我想知道是什么。如何从另一个容器启动新 docker 容器的运行?我的问题不仅是关于 Kubernetes,而且我可以使用任何工具来解决这个问题。
  • 正如之前的社区成员所说。这不是最佳做法。我建议查看以下链接: 1.[StackOverflow control docker from container](stackoverflow.com/questions/39468841/… 2.Exposing dockerd api 3.Docker engine security。您需要以这种方式启动容器有什么特别的原因吗?
  • @DawidKruk 谢谢你的链接。具体示例:机器学习部署。服务:前端,后端。 Frontend = UI,我可以从列表中选择模型并单击“部署”按钮(调用某个后端端点)。然后后端在单独的容器中运行新的模型服务器。
  • @AlexKolosov 这些部署会计算出您将创建的东西吗?最重要的是,您是否打算授予其他人运行它的权限?

标签: docker kubernetes


【解决方案1】:

我已经编译了问题下 cmets 中的所有链接。我建议看看他们:

码头工人:

Kubernetes:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-08
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2021-04-24
    • 1970-01-01
    • 2020-03-20
    相关资源
    最近更新 更多