我是为此构建Docker镜像还是需要使用Docker Compose?

时间:2016-02-08 23:11:45

标签: mysql node.js image docker docker-compose

我正试图进入Docker并使用当前项目作为学习练习。这是一个使用Centos 7,Node和MySQL的相当基本的应用程序。

我的第一个想法是为上面提到的其他人提供CentOS 7图像和图像。

当我测试一个Node图像时,我意识到我可能不需要Centos图像,但我确实需要MySQL ...不是推荐的方法来组合图像,或者即使它是这个项目的正确路线。

我应该从操作系统映像开始并安装我需要的所有依赖项/服务,或者我是否与Docker Compose一起运行图像?

我尝试构建WordPress图像以查看他们正在做什么,但大多数教程只是引用了预建的图像。

我确信我可以一起破解某些东西,但我想走首选路线。

我希望我可以在Dockerfile中指定所有这些内容,以便我可以轻松分享。

对此的任何指示表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

Quoting from the official best practices

  

每个容器只运行一个进程

     

在几乎所有情况下,您只应在单个容器中运行单个进程。将应用程序分离到多个容器中可以更容易地水平扩展和重用容器。如果该服务依赖于其他服务,请使用container linking

如果要在容器中运行多个进程,则需要某种管理程序或初始化系统,否则会丢失docker提供的一些功能(日志记录,自动重启)。

总而言之,每个进程运行容器更麻烦。后者也略微安全,因为这些流程无法轻易攻击其他流程。

因此,在具体情况下,您将运行一个mysql容器和一个node容器(可能基于node:onbuild)并将mysql链接到nodenodemysql对话。