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

Multiple applications running simultaneously on a single Docker image

假设我在同一个 Docker 图像上安装了一个网络服务器和一个数据库服务器,是否可以同时 运行 它们,就好像它们在 运行 内部一样同一个虚拟机?

它 运行 宁 docker run <args> 两倍于此用例的最佳实践吗?

您不应该为您的网络服务器和数据库使用单个图像。您应该为 Web 服务器使用一张图片,为数据库使用一张图片。

要运行这个,你会运行你的数据库服务器然后运行你的网络服务器和link它到你的数据库服务器。

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

根据这个 stack overflow answer,完全可以通过负责启动这些服务中的每一个的脚本来做到这一点

Can I run multiple programs in a Docker container?

尽管大多数人只是告诉您将所有内容微服务到多个不同的容器中。在某些情况下,如果您考虑云部署,您可能想要 运行 多个 Web 应用程序,每个应用程序对应一个不同的系统测试,那么使用多个进程的容器可能更易于管理。

因此,您将拥有独立的小型 hsql 数据库 运行ning 在服务器模式下,然后是您的 wildly 或 springboot 应用程序,最后是您的系统测试 mvn..

如果您将三者合而为一...那么只需选择将您的合而为一容器放在哪个 Jenkins 节点中即可 运行。因为它把所有的东西都打包在里面,不管任何其他容器,而且图像大小也不是很大……你真的很敏捷。举个例子。

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

对于像 mysql 这样的大 dB,您通常最好 运行 将它们放在一个隔离的容器上作为所有其他 docker 容器的基础平台。使用像 hsql 这样的 DB,您可以轻松地为每个容器提供一个 db。