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

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

运行docker run <args>是这个用例的两个最佳实践吗?

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

要运行这个,你需要运行你的数据库服务器,然后运行你的web服务器并把它连接到你的数据库服务器。

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

根据这个堆栈溢出的答案,完全可以通过一个负责启动这些服务的脚本来完成

我可以在Docker容器中运行多个程序吗?

虽然大多数人只是告诉你微服务一切到不同的容器。 在某些情况下,如果您想要运行多个Web应用程序(每个应用程序都与不同的系统testing相对应)进行云部署,那么容器可以pipe理多个进程。

所以你会有你的孤立的小型hsql数据库运行在服务器模式,其次是你的疯狂或springboot应用程序,最后你的系统testing由mvn ..

如果你把所有的三个放在一个容器中,那么只需要select一个容器中的Jenkins节点就可以运行。 由于它包装在所有内部,不pipe其他容器和图像的大小是不是怪异的…你真的敏捷。 举个例子。

所以你必须看看什么是最适合你的。

像mysql这样的大分贝,你通常会更好地在一个孤立的容器上运行它们,作为所有其他docker容器的基础平台。 有了像hsql这样的dB,您可以轻松地为每个容器提供一个分贝。