我是为此构建一个 Docker 图像,还是需要使用 Docker Compose?

Do I build a Docker Image for this or do I Need to use Docker Compose?

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

我的第一个想法是拉一个 CentOS 7 图片和上面提到的其他图片。

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

我应该从 OS 图像开始并安装我需要的所有 dependencies/services 就像在任何其他服务器上一样,还是 运行 将图像与 Docker 一起安装作曲之类的?

我试着查看构建 WordPress 图像以了解它们在做什么,但大多数教程仅引用预构建图像。

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

我希望我可以在 Docker 文件中指定所有这些内容,以便我可以轻松地共享它。

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

Quoting from the official best practices:

Run only one process per container

In almost all cases, you should only run a single process in a single container. Decoupling applications into multiple containers makes it much easier to scale horizontally and reuse containers. If that service depends on another service, make use of container linking.

如果你想 运行 一个容器中有多个进程,你将需要某种主管或初始化系统,你将失去 docker 提供的一些功能(日志记录、自动重启).

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


所以在你的具体情况下,你会 运行 一个 mysql 容器和一个 node 容器(可能基于 node:onbuild)和 link mysqlnodenodemysql 交谈。