什么是“合并”Docker镜像的正确方法?

我是Docker的新手。 我一直在试图找出如何“结合”多个Docker镜像,但我似乎无法find一个直接的答案。 我已经读过,添加多个FROM语句是可能的,但不鼓励。

例如,我想要一个包含NGINX和MongoDB的图像。 我应该只是将他们的官方dockerfiles的内容复制到一个? 推荐的方法是什么?

虽然合并一些服务是有意义的,例如nginx和服务器端脚本工具集,但我build议不要混合一个nginx和一个mongodb容器。

相反,在自己的容器中使用每个服务并链接容器。 为了简化这个过程,我强烈build议阅读docker-compose来构build一个堆栈。

Docker使用单一的inheritance,而不是组合。 这是我缺less的function之一。

这就是说,你应该很less需要它,因为你应该在1个容器上运行1个东西。 所以在你的情况下,我会build议使用2张图片。

如果你真的需要运行它,我会build议复制粘贴configuration,使NGINX安装在MongoDB的基本形象,反之亦然。 然后添加supervisord运行