消息队列部署在 docker 中合适吗?

2020-10-16 15:38:08 +08:00
 EnochLiang

初学者求问,网上有很多资料说不建议将数据库部署在 docker 中,因为一旦 docker 容器被删除了,数据也就没了,那消息队列和 redis 这样的中间件呢?是不是同样也不建议部署在 docker 中呢?

4221 次点击
所在节点    Docker
11 条回复
lambdaq
2020-10-16 15:56:36 +08:00
下面开始技术总结:喜欢丢数据的同学可以用 docker,不喜欢的的可以不用。
shiny
2020-10-16 15:57:05 +08:00
理由不成立
nomansky
2020-10-16 16:00:29 +08:00
谁说的 docker 删了数据就没了,csdn 看到的资料?容器是可以持久化数据的,建议了解下 docker 的原理
luckyrayyy
2020-10-16 16:01:35 +08:00
docker 本身是无状态的,不适合存储有状态的服务。但是不等于有状态的就不能上 docker 。你可以把磁盘挂载上去,当然这样 docker 就不能漂移了。或者把存储和计算分开,好像阿里很早之前就把数据库容器化了,不过容器里面只有计算单元,存储另外方的。
eric96
2020-10-16 17:31:03 +08:00
docker 是可以挂载磁盘的,像 k8s 这种,支持各种云服务提供的存储服务
xurunfei
2020-10-16 17:48:05 +08:00
将数据挂载到宿主机就行了
joyhub2140
2020-10-16 17:55:57 +08:00
大部分生产环节的容器,都会把日志和数据,配置,相关的写在挂载的 volume 上面的,这部分是独立于容器的生命周期的

更容易理解的说法应该是,容器就是执行中的代码,和数据是分离的

建小站,访问量也小,把所有组件仍容器内,简直不要太爽。

大流量站点,对性能要求苛刻的,可以把数据库组件移出容器,以贴近原生的速读运行。
zzl22100048
2020-10-16 20:11:02 +08:00
我把你这里的 docker 理解成容器化吧,statefulset 不就专门用于有状态的应用么
EnochLiang
2020-10-19 10:09:50 +08:00
@joyhub2140 感谢🙏
EnochLiang
2020-10-19 10:12:14 +08:00
@luckyrayyy 我可以理解为要在容器外独立出一个存储单元,然后把这个存储单元挂载到容器中,容器只提供计算服务,这样做的话,就不用担心数据丢失了是吗?
julyclyde
2020-10-19 10:38:08 +08:00
if doubt, don't do it

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

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

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

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

© 2021 V2EX