假设我在同一个公共Docker镜像上安装了一个Web服务器和一个数据库服务器,是否可以同时运行它们,就像它们在同一个虚拟机中运行一样?
这个用例的最佳做法是docker run <args>
两倍吗?
答案 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,你可以很容易地为每个容器提供一个数据库。