关于一台服务器,docker部署多个服务的问题
假设我有一台服务器,需要部署3个项目,分别是java、node,php的,这三个项目都需要用到mysql和Nginx,想用docker-compose进行管理,有如下疑问:
- 是否每个项目(php容器,node容器,java容器)都需要独立的mysql和Nginx容器,如果是,这样会导致结果可能是:php+Nginx+mysql,java+Nginx+mysql,node+Nginx+mysql,一台服务器有9个容器,一台服务器三个mysql容器运行,是否会导致性能问题呢。
- 如果三个服务容器(php,node,java容器)共用mysql和Nginx容器,结果可能是:一共有5个容器(php,java,node,Nginx,mysql),我通过docker compose配置的时候,需要多少个compose呢,每个compose又分别是怎么配置的。
- 最后,类似我这样的需求行业成熟的做法是怎么样的呢,如果共用Nginx和mysql,我停掉java,另外node和php需要正常运行(包括他们依赖的Nginx和mysql)。
感谢您的解答。
回答:
对于问题1: 在单个mysql和ngingx性能足够的情况下,是不需要单独部署的
对于问题2: 每个docker一个compose是必须的,具体怎么设置,可以参考各自需要的特性设置,不过需要注意的是,你的mysql肯定需要部署持久化数据存储支持,并把数据库支持的端口映射出来。对于需要访问数据库的docker,则需要能够定制的访问公开的mysql服务。 至于nginx,要看你的应用到底如何部署,即nginx与php、java和nodejs之间关系啦。
对于问题3: 这个其实更多的是涉及docker管理方式的问题以及具体应用特性的问题,理论上是有解决办法的,不过更高级的涉及容器编排和监控主题,比如高可用的实现。
回答:
mysql和nginx不用容器直接在机器上跑
应用用容器
以上是 关于一台服务器,docker部署多个服务的问题 的全部内容, 来源链接: utcz.com/p/944114.html