我正在探索在新应用程序中使用容器,并查看了大量内容并创建了一个沙箱环境来探索docker和容器。我的斗争更多的是了解哪些组件需要单独进行容器化,而不是将多个组件捆绑到我自己的容器中。在构建这个时需要考虑什么? 例: 我正在构建一个python后端服务,通过webservice调用执行。 该服务将与Mongo DB和RabbitMQ进行交互。
我的问题是: 我应该运行单独的OS容器(EG Ubuntu),Python容器,MongoDB容器,Rabbit MQ容器等吗?结合起来,它们都构成了我的应用程序的一部分,通过解耦我能够单独扩展的所有东西?
我如何能够捆绑/链接这些用于部署而不会失去解耦/分解成单个容器的好处
实际上是否需要OS和python容器,因为这将全部在带有python的操作系统上运行?
很想看到人们如何解决这个问题?
答案 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文件),启动,创建所需的网络,安装所需的卷等。