哪些组件应该“集装箱化” - Docker

时间:2017-03-01 11:10:39

标签: docker

我正在探索在新应用程序中使用容器,并查看了大量内容并创建了一个沙箱环​​境来探索docker和容器。我的斗争更多的是了解哪些组件需要单独进行容器化,而不是将多个组件捆绑到我自己的容器中。在构建这个时需要考虑什么? 例: 我正在构建一个python后端服务,通过webservice调用执行。 该服务将与Mongo DB和RabbitMQ进行交互。

我的问题是: 我应该运行单独的OS容器(EG Ubuntu),Python容器,MongoDB容器,Rabbit MQ容器等吗?结合起来,它们都构成了我的应用程序的一部分,通过解耦我能够单独扩展的所有东西?

我如何能够捆绑/链接这些用于部署而不会失去解耦/分解成单个容器的好处

实际上是否需要OS和python容器,因为这将全部在带有python的操作系统上运行?

很想看到人们如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

Docker的理念:在容器中使用微服务。在过去几年中,术语“Microservice Architecture”如雨后春笋般涌现,以描述将软件应用程序设计为independently deployable services套件的特定方式。

microservices architecture的一些优点是:

  • 更轻松的升级管理
  • 消除对单一技术堆栈的长期承诺
  • 改进了故障隔离
  • 让新开发人员更容易理解服务的功能
  • 提高安全性
  • ...
  

我应该运行单独的OS容器(EG Ubuntu),Python容器,   MongoDB容器,Rabbit MQ容器等?它们组合在一起   我的应用程序的一部分,并通过解耦我有能力的一切   单独扩展?

您不需要单独的OS ontainer。每个容器都将使用Docker主机的内核,并且只包含所需的二进制文件,例如python二进制文件。

所以你将拥有一个python容器,用于你的python服务,MongoDB容器和RabbitMQ容器。

  

如何在不丢失的情况下捆绑/链接这些以进行部署   解耦/分解成单个容器的好处?

对于部署,您将使用dockerfiles + docker-compose文件。 Dockerfiles包含创建docker镜像的说明。如果您只是使用官方库图像,则不需要dockerfiles。

docker-compose将帮助您协调容器构建(来自docker文件),启动,创建所需的网络,安装所需的卷等。