多个docker集装箱

我正在阅读有关docker工的信息,我正试图了解这是否应该学习使用。

从我读过的最佳实践中可以看出,每个容器应该有一个进程。 现在,这意味着我需要一个JBoss容器,一个用于数据库,一个用于文件存储,构build服务器,…

现在我手动必须启动每个这些容器? 还是有一些你可以build立的依赖关系?

那么一个容器中的一个进程的顺序和要求怎么样? JBoss需要启动数据库之前启动等?

这是处理?

每个容器一个进程

如果您想遵循微服务架构,此build议是有效的。 微服务有其优点,但也有缺点。 根据您的情况,您可能会发现使容器运行多个进程更方便。

在一台主机上运行多个容器

如果你想在一个docker主机上同时启动多个容器,最简单的方法就是使用fig 。 figconfiguration文件很容易理解,因为它的语法模仿docker命令。 这个video给你一个很好的介绍无花果(无花果作者之一Aanand Prasad)

请注意,无论如何,像AFAIK这样的工具都无法等待第一个容器启动并完成初始化,然后再启动另一个容器,具体取决于第一个容器。 处理这个问题的方法是让第二个容器实现一些testing和循环,直到依赖已经准备好,然后开始它的过程。 这可以通过不同的方法来实现(包装脚本,直接在你的应用程序代码中,…)

在一个容器中运行多个进程

由于docker容器会在前台没有进程的时候停下来,所以你可以使用不同的技术( supervisor ,运行第一个进程作为守护进程,最后一个在前台运行,使用phusion / baseimage ,… )