是什么样的操作能让 Docker 容器挂掉

2020-07-10 08:35:36 +08:00
 jss
最近上线个小项目,运行一个月后 容器半夜挂掉,由于是半夜没有拿出日志,重新创建容器后继续运行。想问问可能的原因?
6740 次点击
所在节点    Docker
54 条回复
rockyou12
2020-07-10 13:17:08 +08:00
@594duck 结果是上的 k8s 跑 redis,那你不做 ceph 这种分布式存储当然不要用啊。而且真是你程序到处飘基本还是是资源分配就有问题,内存和 cpu 一直在程序间竞争导致互相乱杀,这个也是运维水平和资源投入问题。你就是虚拟机直接上 redis 还不是解决不了
594duck
2020-07-10 13:19:42 +08:00
@choury 虚拟机里程序的傻 X 问题可以把母机跑挂掉的难度那可比 Docker 程序有问题把母机跑挂掉的难度大到不是一点半点。
594duck
2020-07-10 13:22:16 +08:00
@rockyou12 你接触过大规模生产运维么?虚拟机上 Reids 或者 ReidsCluster,配置好后基本不用去动。毕竟人家环境隔离那叫一个稳。
Rwing
2020-07-10 13:24:56 +08:00
我站 docker !
594duck
2020-07-10 13:25:48 +08:00
@rockyou12 Docker 派不是吹起来这样吹的么。

我,Docker 512M 内存跑了 5 个服务,你们传统运维能行么?

你五个服务跑 512M,吹什么牛逼。

我 Docker 用 SWAP,512M 内存跑了 5 个服务,你们传统运维能行么。

行行行行行,你历害,大爷再见。不送。

https://www.v2ex.com/t/687612#reply81

我不吹牛逼噢。

另外如果你资源 什么都分配足 了,也就是在 IO 层面上和我虚拟机运营没有任何区别,你的号称资源 随意伸缩迁移的优势呢。

另外 Ceph 又是一个超级大坑,生产环境大了坑特别猛,像 BILIBILI 就是。

小了我还不如买台存储回来搞,省心省力。TCO 比你还核算。
ffxrqyzby
2020-07-10 13:52:12 +08:00
@594duck
docker 我们用了 5 年了, docker 本身是有问题, 但是你一直再喷就没意思了, 不适合你的场景不一定不适合别人
pmispig
2020-07-10 14:41:04 +08:00
说 docker 把内核干崩溃的,你确定是 docker 造成的而不是你程序造成的?
LichMscy
2020-07-10 14:42:08 +08:00
都 0202 年了还有人认为用 Docker 是时髦
我们团队的容器云平台从 17 年开发第一版,目前在公有云私有云的多个数据中心搭建了十几个集群,支持了几十个生产级项目组,日均部署量 6000+,除了 db 缓存这种有状态的存储服务暂无法提供生产级别支持外,其他服务都支持的很好,包括但不仅限于 JAVA/.NET/PHP/Python/Go/C#/Node/Nginx 等类型,给项目组节约了很大一部分的资源费用。像楼里某些无知无畏的兄弟上来就数落容器怎样怎样,真有够好笑的。

然后回复下楼主的问题,可能的原因有很多种,我们平台的经验一般借助像日志 /资源监控 /告警 /HPA/多实例高可用等工具或机制,能比较好的进行维护和管理。楼主如果只是小项目直接上 ELK 可能太重了,可以考虑 loki 之类的日志工具进行管理,或者直接将日志写入文件挂载到宿主机上也可以;同时可以考虑添加监控,借助监控排查容器的资源使用情况是否有问题,多方面综合考虑看看。
efaun
2020-07-10 14:46:00 +08:00
@594duck #6 这纯粹是技术实力问题,怪不得 docker
whileFalse
2020-07-10 14:57:23 +08:00
@594duck 什么样的容器能把内核搞挂?
HangoX
2020-07-10 15:03:58 +08:00
有什么好争执的,说 docker 好用的人肯定是 docker 帮助过他。说 docker 不行的人,也可能是 docker 对他真的没帮助。工具而已,选自己称手的用即可,何苦争来争去呢
594duck
2020-07-10 15:51:12 +08:00
@whileFalse 你问问那个很历害的 @LichMscy 他有没有遇到过容器把内核搞挂,毕竟在人家眼里我无知么。对吧

顺便和 @LichMscy 说一下,你自己就是做容器云的,只谈优点谁都会对吧,但这么喷人,我觉得也是很历害。吃相不好看噢。
我们敬重的大牛都是缺点和优点一起讲的,我看 infoq 上也有很多业内大牛,人家也是优点和缺点一起讲。京东分享的容器常识也够多了,人家也是优点和缺点一起讲。没见你这么喷的噢。
thtznet
2020-07-10 16:27:34 +08:00
拔电源
tfdetang
2020-07-13 10:07:08 +08:00
@594duck 作为一个调参侠,生产上启用 k8s - docker 对我来说节约了太多的开发与运维成本。

从开发角度而言,不同版本的模型可能依赖不同版本的 tensorflow, 而不同版本的 tensorflow 又依赖不同版本的 cudnn 。 如果不依赖容器,我要实现多版本 cudnn 就很麻烦。 什么?虚拟机?你要我搞虚拟机显卡直通? 先不问老黄答应不答应,我为了搞这一套还不知道要折腾多久。

但是用了 Docker 方案就优雅很多了,在项目里定义好 dockerfile 和编排,同事 vscode 里一键就可以从容器中打开继续项目的开发。


从运维角度而言,我不需要写复杂的部署文档,实际上即使我写了部署文档运维还是不得不来问我到底是怎么把这些玩意儿装上去的。更可怕的是,对于 CPU 和 GPU 版本我可能还要准备 2 套部署文档。 而使用 docker,大家只要看一下编排,都心领神会了,cpu-gpu 只要改下镜像 tag 就行了。

你要说容器化有没有坑? 肯定是有的,但是给我带来的便利远大于坑带来的苦恼

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

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

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

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

© 2021 V2EX