多个应用程序在单个Docker镜像上同时运行

时间:2016-02-26 19:29:52

标签: docker virtual-machine

假设我在同一个公共Docker镜像上安装了一个Web服务器和一个数据库服务器,是否可以同时运行它们,就像它们在同一个虚拟机中运行一样?

这个用例的最佳做法是docker run <args>两倍吗?

2 个答案:

答案 0 :(得分:3)

您不应该为Web服务器和数据库使用单个映像。您应该为Web服务器使用一个映像,为数据库使用一个映像。

要运行此操作,您将运行数据库服务器,然后运行Web服务器并将其链接到数据库服务器。

互联网上有很多例子。我将把这个留在这里:https://github.com/saada/docker-compose-php-mysql

答案 1 :(得分:0)

根据这个堆栈溢出答案,通过负责启动每个服务的脚本完全可以做到这一点

Can I run multiple programs in a Docker container?

虽然大多数人只是告诉你将所有东西微服务到多个不同的容器中。在某些情况下,如果您考虑云部署,您可能希望运行多个Web应用程序(每个应用程序对应不同的系统测试),那么在某些情况下可以更容易管理容器以便共进午餐。

所以你要让你的孤立的小hsql db在服务器模式下运行,然后是你的wildboot或springboot应用程序,最后你的系统测试由mvn ..

如果你将所有三个容器放在一个容器中......那么只需选择Jenkins节点就可以运行一个容器中的所有容器。因为它包含所有内容而不管任何其他容器,并且图像大小不是滔天...你真的很敏捷。举个例子。

所以你必须看看什么对你最好。

对于像mysql这样的大dB,你通常最好在隔离的容器上运行它们作为所有其他docker容器的基础平台。使用像hsql这样的dB,你可以很容易地为每个容器提供一个数据库。