在一个Docker容器中运行多个应用程序

DroidOS

这个问题是我继续研究Docker的一部分,并且在某些方面跟进了我先前的问题之一我现在已经了解了如何通过将一堆Docker容器链接在一起来获得完整的应用程序堆栈(有效地是微型VPS)。例如,可以创建一个堆栈,为Apache + PHP5提供一堆扩展名+ Redis + MemCached + MySQL,它们都在Ubuntu上运行,无论是否带有附加数据容器,都可以轻松地序列化用户数据。

一切都非常优雅。但是,我不禁要怀疑...。5个容器来运行那么小的VPS(因为Apache + PHP5进入一个容器,所以我算5个而不是6个)。那么,假设我有100个这样的VPS正在运行?这意味着我有500个容器在运行!我理解这里的论点-可以很容易地组成新的应用程序堆栈,更新堆栈中的一个组件等。但是以这种方式操作没有不必要的开销吗?

假设我这样做了

  • 将我所有的应用程序放在一个容器中
  • 写一个小shell脚本

    !/ bin / bash服务memcached启动服务redis-server启动....服务apache2启动同时:do:完成

在我的Dockerfile中

ADD start.sh /usr/local/bin/start.sh
RUN chmod +x /usr/local/bin/start.sh

....
ENTRYPOINT ["/bin/bash"]
CMD ["/usr/local/bin/start.sh"]

然后,我启动并运行该容器

docker run -d -p 8080:80 -v /var/droidos/site:/var/www/html -v /var/droidos/logs:/var/log/apache2 droidos/minivps

和我做生意。现在,当我想以编程方式关闭该容器时,可以通过执行一个docker命令来实现。

当一个Google为他们提供服务时,会发现许多性质相似的问题。除了上面提到的论点之外,针对每个容器一个应用程序的方法给出的最常见原因之一是“这就是Docker设计的工作方式”。我想知道什么

  • 在N个链接的容器中运行x100实例的缺点是-通过主机上的速度,内存使用情况等进行权衡?
  • 我在这里所做的事情有什么问题?
布赖恩

容器基本上是一个过程。在规模合适的Linux系统上运行500个进程没有技术问题,尽管它们将必须共享CPU和内存。

容器在进程上的成本是一些额外的内核资源,用于管理名称空间,文件系统和控制组,以及Docker守护程序内部的某些管理结构,尤其是用于处理stdoutstderr

引入名称空间是为了提供隔离,以便一个容器不会干扰其他任何容器。如果您的5个容器组组成一个不需要这种隔离的单元,则可以使用共享网络名称空间--net=container目前没有共享cgroup AFAIK的功能。

您的建议出了什么问题:

  • 它不是“ Docker方式”。这对您可能并不重要。
  • 与使用为任务设计的协调器相反,您必须维护脚本才能使其正常工作,担心进程重新启动等。
  • 您将必须管理文件系统中的冲突,例如,两个进程需要不同版本的库,或者它们都写入同一输出文件
  • stdout并将stderr在五个过程中混合在一起

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从另一个Docker容器中的另一个应用程序启动Docker容器

来自分类Dev

从另一个Docker容器中的另一个应用程序启动Docker容器

来自分类Dev

Docker:从一个容器中的应用程序和服务器登录

来自分类Dev

如何从另一个Docker容器访问安装在Docker容器中的应用程序?

来自分类Dev

将一个 docker 容器中的 nodejs 应用程序连接到 Docker Swarm 上另一个容器中的 mongodb

来自分类Dev

启动在一个控制台中拆分的Shell中运行的多个应用程序

来自分类Dev

启动在一个控制台中拆分的Shell中运行的多个应用程序

来自分类Dev

使用另一个应用程序在Docker中运行Nginx

来自分类Dev

在单个docker-compose文件中运行多个多容器应用程序

来自分类Dev

使用我的角度应用程序创建一个Docker容器

来自分类Dev

如何在Linux(bash)中的多个网络接口之间循环,分别使用每个应用程序运行一个应用程序?

来自分类Dev

如何在一个EC2实例上运行多个应用程序?

来自分类Dev

为一个Rails应用程序运行多个Phusion乘客实例

来自分类Dev

在一个GPU上运行多个CUDA应用程序

来自分类Dev

运行同一个 springboot 应用程序的多个实例

来自分类Dev

在不同端口上运行单独的Docker应用程序,一个作为子域

来自分类Dev

在另一个Docker容器中运行一个Docker容器?

来自分类Dev

在另一个Docker容器中运行一个Docker容器?

来自分类Dev

在一个租户中为同一Web应用程序创建多个企业应用程序注册

来自分类Dev

在一个租户中为同一Web应用程序创建多个企业应用程序注册

来自分类Dev

如何在Android中的一个应用程序中的分离罐中具有多个应用程序类

来自分类Dev

如何在Android中的一个应用程序中的单独的罐子中有多个应用程序类

来自分类常见问题

添加一个Java程序以在Android Studio应用程序中运行

来自分类Dev

一个流程应用程序中可以运行多少个AsyncTask

来自分类Dev

一个流程应用程序中可以运行多少个AsyncTask

来自分类Dev

在一个容器或多个容器 Docker 上运行多个服务?

来自分类Dev

每天自动运行一个应用程序

来自分类Dev

我只想运行一个应用程序

来自分类Dev

运行一个简单的 Falcon 应用程序

Related 相关文章

  1. 1

    从另一个Docker容器中的另一个应用程序启动Docker容器

  2. 2

    从另一个Docker容器中的另一个应用程序启动Docker容器

  3. 3

    Docker:从一个容器中的应用程序和服务器登录

  4. 4

    如何从另一个Docker容器访问安装在Docker容器中的应用程序?

  5. 5

    将一个 docker 容器中的 nodejs 应用程序连接到 Docker Swarm 上另一个容器中的 mongodb

  6. 6

    启动在一个控制台中拆分的Shell中运行的多个应用程序

  7. 7

    启动在一个控制台中拆分的Shell中运行的多个应用程序

  8. 8

    使用另一个应用程序在Docker中运行Nginx

  9. 9

    在单个docker-compose文件中运行多个多容器应用程序

  10. 10

    使用我的角度应用程序创建一个Docker容器

  11. 11

    如何在Linux(bash)中的多个网络接口之间循环,分别使用每个应用程序运行一个应用程序?

  12. 12

    如何在一个EC2实例上运行多个应用程序?

  13. 13

    为一个Rails应用程序运行多个Phusion乘客实例

  14. 14

    在一个GPU上运行多个CUDA应用程序

  15. 15

    运行同一个 springboot 应用程序的多个实例

  16. 16

    在不同端口上运行单独的Docker应用程序,一个作为子域

  17. 17

    在另一个Docker容器中运行一个Docker容器?

  18. 18

    在另一个Docker容器中运行一个Docker容器?

  19. 19

    在一个租户中为同一Web应用程序创建多个企业应用程序注册

  20. 20

    在一个租户中为同一Web应用程序创建多个企业应用程序注册

  21. 21

    如何在Android中的一个应用程序中的分离罐中具有多个应用程序类

  22. 22

    如何在Android中的一个应用程序中的单独的罐子中有多个应用程序类

  23. 23

    添加一个Java程序以在Android Studio应用程序中运行

  24. 24

    一个流程应用程序中可以运行多少个AsyncTask

  25. 25

    一个流程应用程序中可以运行多少个AsyncTask

  26. 26

    在一个容器或多个容器 Docker 上运行多个服务?

  27. 27

    每天自动运行一个应用程序

  28. 28

    我只想运行一个应用程序

  29. 29

    运行一个简单的 Falcon 应用程序

热门标签

归档