把多个应用服务塞进一个 docker 容器里有没有意义

2018-10-31 16:04:34 +08:00
 CivAx

公司内部准备用 docker 逐步替换掉原本直接搭在 LVS 上的测试环境,将分散的物理机资源整合起来。

按照我的思路,新拿一台 LVS 跑 docker,然后一个服务起一个容器,容器配好、互通正常,基本这活儿就算结了。

结果今天突然来个需求,说让我把几个服务一起塞到一个容器里(譬如一个 container 里面同时跑 NGINX+MySQL+Tomcat )。

单容器多服务这种做法到底有没有意义……我感觉这又回到 LVS 的形式上了。

15409 次点击
所在节点    程序员
64 条回复
JaguarJack
2018-10-31 16:06:57 +08:00
推荐一个 container 一个应用
CivAx
2018-10-31 16:08:35 +08:00
@JaguarJack 对我也是这么认为的,但是应该怎么列举优势说服他?
LoliconInside
2018-10-31 16:09:22 +08:00
@CivAx 一旦一个容器异常退出整个业务就全挂了 感觉只能这么和他说
hoiyd
2018-10-31 16:11:08 +08:00
你需要 kubernetes 的 pod
nooper
2018-10-31 16:11:36 +08:00
脑子为啥有问题,直接把服务干挂了。
zpf124
2018-10-31 16:11:54 +08:00
单单 nginx + tomcat 我还能理解一些, 把 mysql 都加上就完全不应该了吧?
Keria
2018-10-31 16:12:55 +08:00
一些开源软件为了用户开箱即用把很多东西塞进一个容器,自己搭服务觉得没必要,有编排呀~
ksco
2018-10-31 16:14:37 +08:00
1. 更加易于横向扩展
2. 更容易定位问题
3. 更容易升级版本号
4. 日志更加清晰明确
......
helone
2018-10-31 16:15:05 +08:00
gitlab 官方也是这么封装的,其实无非就是一炸都炸和不方便扩展而已。。。
xiqingongzi
2018-10-31 16:15:49 +08:00
ngx + tomcat 问题不是很大。mysql 不应该。
ixiaohei
2018-10-31 16:19:13 +08:00
你们需要 docker 编排和 k8s 这种东西。放一个容器,supervisor 一挂全部挂。另外水平扩展也是一起扩,反而没有体现 docker 的优势,轻量虚拟化和资源隔离。
liuguang
2018-10-31 16:35:24 +08:00
当然是一个容器一个应用了,docker 如果发现了你的容器进程退出了,可以帮你自动重启。
但是如果多个放在一个 container 里面,如果非主线程退出了,你完全不知道,docker 也不会认为你的容器有问题。
fl2d
2018-10-31 16:36:41 +08:00
一损俱损 一荣俱荣
JaguarJack
2018-10-31 16:39:46 +08:00
@CivAx 例如你有 php 和 java 两个 container 都需要连接 mysql 服务呢? mysql 难道打包两次吗
kimqcn
2018-10-31 16:40:16 +08:00
没啥问题啊,这仨东西都可以做成绿色版的,解压即用.放到一个容器里,可不考虑网络连接问题.
wizardoz
2018-10-31 16:49:56 +08:00
他是不是不知道 docker-compose ?
whileFalse
2018-10-31 16:51:02 +08:00
所以这个把所有东西揉一起的需求的目的是什么?
zjsxwc
2018-10-31 16:59:04 +08:00
docker-compose +1
fullpowers
2018-10-31 17:06:12 +08:00
数据库放另外一个容器就行了,其它打包一起
xenme
2018-10-31 17:09:16 +08:00
想折腾,你都可以当成虚拟机用,打包一个配置啥的都简单,短期可能更快
微服务化,单独打包,得考虑编排了,前期可能有人觉得复杂

可以分步来么,不可能一口吃个胖子

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/503058

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX