docker 应用和数据库应该像在同一镜像里吗,求教各路大神~~~~
1
solooo Jan 17, 2018
分开,应用是应用,数据库是数据库
|
3
rockyou12 Jan 17, 2018
一定要分开。如果你是单机部署,写个 docker-compose.yml 就好了,如果是 kubelet 这些也有 pod 这些抽象,分开了一样方便。
|
4
wellsc Jan 17, 2018
不应该,container 应该是无状态的
|
6
codehz Jan 17, 2018 via Android
我个人认为应用和数据库应该分离在不同的镜像,这样可以方便单独重新部署应用。。。当然如果是 demo 这种类型的项目,就是怎么方便怎么来的
|
7
neoblackcap Jan 17, 2018
k8s 就是分开的
|
8
mooncakejs Jan 17, 2018 via iPhone
如果是自己公司业务持续升级的。数据库分开,如果是阿里云之类的,最好用 RDS 之类的产品。
如果是外包或者产品发布的,打成一个包也不错。gitlab 就是个很好的例子。 |
10
zhengxiaowai Jan 17, 2018
数据库都不应该放在 Docker 里面
|
11
liuzelei Jan 17, 2018
@zhengxiaowai nod,db 这种重度 io 的 app,不应该放在 docker 中部署。
|
12
abmin521 Jan 17, 2018
挂了 volume 随便玩
|
14
fatduo Jan 17, 2018
个人认为数据库这些有状态服务,不应该使用容器和容器编排技术,至少生产环境不应该。
|
15
gamexg Jan 17, 2018 via Android
分开,扩展方便。
|
16
forgetandnew Jan 17, 2018 via iPhone
看需求
|
17
ETO Jan 17, 2018
分开
|
18
trepwq Jan 17, 2018
在一个容器里和虚拟机有什么区别。。
|
20
20has Jan 17, 2018 via Android
要我说就无所谓 只要你的数据库卷做了持久化 不管是 data volume 还是分布式存储 都行 前提是业务访问量不大
|
21
monnand Jan 17, 2018 via Android
@fatduo #13
> 个人认为数据库这些有状态服务,不应该使用容器和容器编排技术,至少生产环境不应该。 至少在 Google 所有东西都是在容器(Borg 系统)里的。包括各种数据库类应用,比如 BigTable Spanner 等 但是数据库存储的内容不要做成镜像的一部分。这一点 Kubernetes 应该已经做了一套方案 |
22
feverzsj Jan 17, 2018
哈哈,当然可以放在一起,只是再部署的时候,你得把容器重新保存成镜像
|
23
fatduo Jan 17, 2018
@monnand
我说的情况是容器和机器没有绑定的情况,如果容器和机器完全绑定,这和在这台机器上直接起服务没有太多本质区别。 k8s 是提供了 statefulset 作为有状态服务的部署,可以通过 pvc 挂载 volume 的形式,实现服务(pod)漂后重新挂载存储,数据不丢失。但这种基于网络存储并不是适合 db 这种重 io 的服务。。。 |
24
HuHui Jan 17, 2018
分开
|