我应该如何创建Dockerfile以通过docker-compose运行多个服务?

时间:2017-06-16 18:05:11

标签: docker docker-compose dockerfile

我是Docker的新手。我想创建一个Dockerfile来启动RabbitMQ,ftp服务器和弹性搜索等服务。但我无法思考从哪里开始?

我在这里问了一个类似的问题:How should I create a Dockerfile to run more than one services in one instance?

我必须知道,创建不同的容器:一个用于rabbitmq,一个用于ftp服务器,另一个用于elasticsearch,并使用docker-compose文件运行它们。在那里,您将找到我创建的Dockerfile代码。

如果有人可以帮我解决这个问题,那就太好了。谢谢!

1 个答案:

答案 0 :(得分:1)

他们是对的。每个容器和通过扩展,每个图像应该负责一个问题&通常映射到单个进程。因此,如果您需要运行多个(或一般而言,不是严格的)多个进程,那么您很可能需要构建单独的映像。其中一个最简单的&推荐的创建图像的方法是编写Dockerfile。预计这将是一个非常简单的过程,其中大部分将是您用于安装该组件的相同命令的复制粘贴。

您为每项服务编写了Dockerfile,您必须使用docker build命令构建它们,这将生成图像。

当您运行图像时,您将获得所谓的容器。可以把它想象成iso文件就是图像&实际的vm或正在运行的机器就是容器。

现在,您可以使用docker-compose来协调这些不同容器的方式,以便它们可以相互通信(或隔离)。 docker-compose.yml文件是yaml格式的纯文本文件,用于描述应用程序中不同组件之间的关系。应用程序可以由多个服务组成 - 例如webserver,appserver,searchengine,数据库服务器,缓存引擎等等。每个服务都是一个服务并作为容器运行,但也没有必要将所有内容作为容器运行。有些可以继续以传统方式运行,在VM或裸机服务器上运行。

如果有任何需要,我会检查您的其他帖子并添加。但我希望这可以帮助你至少开始。