我正试图进入Docker并使用当前项目作为学习练习。这是一个使用Centos 7,Node和MySQL的相当基本的应用程序。
我的第一个想法是为上面提到的其他人提供CentOS 7图像和图像。
当我测试一个Node图像时,我意识到我可能不需要Centos图像,但我确实需要MySQL ...不是推荐的方法来组合图像,或者即使它是这个项目的正确路线。
我应该从操作系统映像开始并安装我需要的所有依赖项/服务,或者我是否与Docker Compose一起运行图像?
我尝试构建WordPress图像以查看他们正在做什么,但大多数教程只是引用了预建的图像。
我确信我可以一起破解某些东西,但我想走首选路线。
我希望我可以在Dockerfile中指定所有这些内容,以便我可以轻松分享。
对此的任何指示表示赞赏。谢谢!
答案 0 :(得分:2)
Quoting from the official best practices:
每个容器只运行一个进程
在几乎所有情况下,您只应在单个容器中运行单个进程。将应用程序分离到多个容器中可以更容易地水平扩展和重用容器。如果该服务依赖于其他服务,请使用container linking。
如果要在容器中运行多个进程,则需要某种管理程序或初始化系统,否则会丢失docker提供的一些功能(日志记录,自动重启)。
总而言之,每个进程运行容器更麻烦。后者也略微安全,因为这些流程无法轻易攻击其他流程。
因此,在具体情况下,您将运行一个mysql
容器和一个node
容器(可能基于node:onbuild
)并将mysql
链接到node
让node
与mysql
对话。