半年前我开始关注这个issue
Kernel Panic when mounting volumes on RHEL 6.5 using Docker 1.4.0, Docker 1.4.1, with latest device mapper
没错是Kernel Panic,也就是说,满足一定的条件(这个条件非常朴实)启动容器的时候机器会挂掉!
来张堪称经典的图片吧:
然而docker官方依旧写着支持CentOS6.5+系列(半年前,现在我有一定的把握他们还是这么写的)
那时之后我虽然放弃了docker,不过还是依旧关注着这个issue。
到了前段时间,去提交这个BUG的人越来越多,最后这个问题被提到了redhat官方,而官方的答复是:
没错,想好好玩docker,先装个rh7再说吧。
这再次证明了目前来讲docker不过是一个只能在一些后期支持不太好的发行版上玩玩的东西,并不适合大规模的应用。
不过如果公司有钱,没事玩玩这个风口上的搓比软件也无所谓(此处求打脸)。
当然docker还有很多很多坑,只不过这个坑我实在是难以忍受。
1
initialdp 2015-06-25 11:26:36 +08:00
玩docker用Ubuntu才是正确姿势吧
|
2
johnsmith123 OP @initialdp :) 你要这么说那我也没话说了。
|
3
powergx 2015-06-25 11:42:28 +08:00
玩了一个星期,docker 就是一坨屎, 经常会有奇葩的不兼容问题。
特别是牵涉到网络 |
4
johnsmith123 OP @powergx 网络确实是个大坑,不过使用默认的端口映射的话还好。
docker的话,推广做得不错:) |
5
jade88 2015-06-25 11:58:23 +08:00
这个我之前也遇到过,你可以手动更新内核到3.10,然后用最新的docker,docker和服务器版本并不是强绑定的
|
6
johnsmith123 OP @jade88 ..此刻我的心中必是万个**在奔腾,不过确实是个解决的方法,然而本人已放弃docker:)
|
7
9hills 2015-06-25 12:05:05 +08:00 1
如果面对Kernel Panic,只会吐槽这个cuoB软件。。
那你就不适合用这种业界前沿技术。 只有大公司才能靠研发团队 cover住这种风险 |
8
Andiry 2015-06-25 12:10:54 +08:00
这个stack很清楚啊,不知道为什么Redhat不去修。难道他们已经放弃6系列的support了。
|
9
johnsmith123 OP @9hills 据我所知,有不少人说docker代码的内部实现很cuo(虽然我没读过)。根据我使用的经验,确实用起来很cuo,感觉还不如直接上lxc。之前github上有个腾讯的人,他们公司定制了内核,然后docker出了问题感觉都会躺枪。
kernel panic一般的大公司也不一定能hold住吧。 |
10
johnsmith123 OP @Andiry 本来对CentOS的支持就不大好。这只是最严重的一点吧。
|
11
powergx 2015-06-25 12:38:15 +08:00
@johnsmith123 gre 时好时坏,要么ip 是随机的,只有启动之后才能制定ip
|
12
kxxoling 2015-06-25 12:38:22 +08:00
记得 docker 官方是推荐 Ubuntu 还是 Debian 来着。。。CentOS 6 不支持是因为 docker 依赖一些内核特性吧?Ubuntu 12.04 也都先安装补丁才能用。
|
13
johnsmith123 OP @kxxoling Debian系,不过CentOS6.5+也是支持的,半年前的官方文档是这么写的。
|
15
Andiry 2015-06-25 12:45:51 +08:00
@johnsmith123 只是kernel太旧了而已。不支持是正常的。
kernel panic这种东西,无非是内核跑挂了而已,跟应用程序崩掉没什么两样。这种debug属于底层工程师的基本技能,何来什么hold不住一说 |
16
johnsmith123 OP @Andiry 。。头一次听说hold kernel bug是底层工程师的基本技能。还好我不是底层研发,只是个装系统的。
|
17
Andiry 2015-06-25 12:51:40 +08:00
@johnsmith123 我说的底层工程师就是内核工程师。当然公司里一个都没有就没办法了,但是大公司除非完全不和内核打交道,一般不会没有。
|
18
Andiry 2015-06-25 12:54:38 +08:00 1
其实就算完全不懂内核,这个问题要debug也很简单。前面有人说3.10的kernel没问题,那么在2.6.32和3.10之间直接做git bisect就行了,无非费点时间。
|
19
johnsmith123 OP @Andiry 我厂还没大到那种程度。。那你直接说kernel工程师就好了。这种人我感觉天朝也没几个吧,知名的也就华为和阿里的内核组=。=
|
20
tywtyw2002 2015-06-25 14:31:24 +08:00 via iPhone
你难道不知道 越是核心的模块越是一个人在写吗?
很多东西除了当事人,其他人都是在看天书。 据我朋友说一个6人的组在开发ib userspace 驱动,一个人写核心,2个人修修补补做做测试,一个qa,一个写testcase,再来一个打酱油的。 |
23
monnand 2015-06-26 08:12:34 +08:00
这个bug是在2.6内核上重现的吧。如今Kernel都4.X了,不支持2.6内核应该是很正常的。另外,Redhad Enterprise Linux的缩写是RHEL。RH7是2000年发布的用2.2内核的那个东西……
|
24
johnsmith123 OP @monnand ...很具有创造力的想法:) 关于RH7和RHEL7..我承认是我简写错误,不过现在也没多少人会想到RH7这个老古董了。
|
25
monnand 2015-06-26 09:50:43 +08:00
@johnsmith123 Go语言本身就只能支持2.6.23以上的版本,之前的版本有可能可以运行Go程序,但是Go官方并不支持。大概扫了一眼issue,的确大家用的是2.6.23这个版本。
这个……2.6.23这个版本的内核是2007年发布的,距今已经有8年的历史了。。。。。 |
26
johnsmith123 OP @monnand 大家用的是32.4XX-32.5XX,不要忽略最后一个数字
|
27
monnand 2015-06-26 10:22:32 +08:00
@johnsmith123
这里是2.6.32系列内核维护者在2012年发布的信息: https://lwn.net/Articles/485125/ 以下是节选: > I STRONGLY encourage any users of the 2.6.32 kernel series to move to the 3.0 series at this point in time. 三年啦!呵呵! |
28
johnsmith123 OP @monnand :) 无言以对
|