docker 与 CentOS 不得不说的故事 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
johnsmith123
V2EX    Docker

docker 与 CentOS 不得不说的故事

  •  
  •   johnsmith123 2015-06-25 11:22:28 +08:00 9745 次点击
    这是一个创建于 3760 天前的主题,其中的信息可能已经有所发展或是发生改变。

    半年前我开始关注这个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,也就是说,满足一定的条件(这个条件非常朴实)启动容器的时候机器会挂掉!

    来张堪称经典的图片吧:
    image

    然而docker官方依旧写着支持CentOS6.5+系列(半年前,现在我有一定的把握他们还是这么写的)

    那时之后我虽然放弃了docker,不过还是依旧关注着这个issue。

    image

    到了前段时间,去提交这个BUG的人越来越多,最后这个问题被提到了redhat官方,而官方的答复是:
    image
    没错,想好好玩docker,先装个rh7再说吧。

    这再次证明了目前来讲docker不过是一个只能在一些后期支持不太好的发行版上玩玩的东西,并不适合大规模的应用。

    不过如果公司有钱,没事玩玩这个风口上的搓比软件也无所谓(此处求打脸)。

    当然docker还有很多很多坑,只不过这个坑我实在是难以忍受。

    28 条回复    2015-06-26 10:30:58 +08:00
    initialdp
        1
    initialdp  
       2015-06-25 11:26:36 +08:00
    玩docker用Ubuntu才是正确姿势吧
    johnsmith123
        2
    johnsmith123  
    OP
       2015-06-25 11:29:50 +08:00
    @initialdp :) 你要这么说那我也没话说了。
    powergx
        3
    powergx  
       2015-06-25 11:42:28 +08:00
    玩了一个星期,docker 就是一坨屎, 经常会有奇葩的不兼容问题。
    特别是牵涉到网络
    johnsmith123
        4
    johnsmith123  
    OP
       2015-06-25 11:44:14 +08:00
    @powergx 网络确实是个大坑,不过使用默认的端口映射的话还好。
    docker的话,推广做得不错:)
    jade88
        5
    jade88  
       2015-06-25 11:58:23 +08:00
    这个我之前也遇到过,你可以手动更新内核到3.10,然后用最新的docker,docker和服务器版本并不是强绑定的
    johnsmith123
        6
    johnsmith123  
    OP
       2015-06-25 12:02:53 +08:00
    @jade88 ..此刻我的心中必是万个**在奔腾,不过确实是个解决的方法,然而本人已放弃docker:)
    9hills
        7
    9hills  
       2015-06-25 12:05:05 +08:00   1
    如果面对Kernel Panic,只会吐槽这个cuoB软件。。

    那你就不适合用这种业界前沿技术。

    只有大公司才能靠研发团队 cover住这种风险
    Andiry
        8
    Andiry  
       2015-06-25 12:10:54 +08:00
    这个stack很清楚啊,不知道为什么Redhat不去修。难道他们已经放弃6系列的support了。
    johnsmith123
        9
    johnsmith123  
    OP
       2015-06-25 12:24:02 +08:00
    @9hills 据我所知,有不少人说docker代码的内部实现很cuo(虽然我没读过)。根据我使用的经验,确实用起来很cuo,感觉还不如直接上lxc。之前github上有个腾讯的人,他们公司定制了内核,然后docker出了问题感觉都会躺枪。
    kernel panic一般的大公司也不一定能hold住吧。
    johnsmith123
        10
    johnsmith123  
    OP
       2015-06-25 12:27:47 +08:00
    @Andiry 本来对CentOS的支持就不大好。这只是最严重的一点吧。
    powergx
        11
    powergx  
       2015-06-25 12:38:15 +08:00
    @johnsmith123 gre 时好时坏,要么ip 是随机的,只有启动之后才能制定ip
    kxxoling
        12
    kxxoling  
       2015-06-25 12:38:22 +08:00
    记得 docker 官方是推荐 Ubuntu 还是 Debian 来着。。。CentOS 6 不支持是因为 docker 依赖一些内核特性吧?Ubuntu 12.04 也都先安装补丁才能用。
    johnsmith123
        13
    johnsmith123  
    OP
       2015-06-25 12:41:12 +08:00
    @kxxoling Debian系,不过CentOS6.5+也是支持的,半年前的官方文档是这么写的。
    9hills
        14
    9hills  
       2015-06-25 12:45:33 +08:00 via iPhone
    @Andiry 内核版本,不太可能搞的
    Andiry
        15
    Andiry  
       2015-06-25 12:45:51 +08:00
    @johnsmith123 只是kernel太旧了而已。不支持是正常的。
    kernel panic这种东西,无非是内核跑挂了而已,跟应用程序崩掉没什么两样。这种debug属于底层工程师的基本技能,何来什么hold不住一说
    johnsmith123
        16
    johnsmith123  
    OP
       2015-06-25 12:48:35 +08:00
    @Andiry 。。头一次听说hold kernel bug是底层工程师的基本技能。还好我不是底层研发,只是个装系统的。
    Andiry
        17
    Andiry  
       2015-06-25 12:51:40 +08:00
    @johnsmith123 我说的底层工程师就是内核工程师。当然公司里一个都没有就没办法了,但是大公司除非完全不和内核打交道,一般不会没有。
    Andiry
        18
    Andiry  
       2015-06-25 12:54:38 +08:00   1
    其实就算完全不懂内核,这个问题要debug也很简单。前面有人说3.10的kernel没问题,那么在2.6.32和3.10之间直接做git bisect就行了,无非费点时间。
    johnsmith123
        19
    johnsmith123  
    OP
       2015-06-25 12:56:23 +08:00
    @Andiry 我厂还没大到那种程度。。那你直接说kernel工程师就好了。这种人我感觉天朝也没几个吧,知名的也就华为和阿里的内核组=。=
    tywtyw2002
        20
    tywtyw2002  
       2015-06-25 14:31:24 +08:00 via iPhone
    你难道不知道 越是核心的模块越是一个人在写吗?

    很多东西除了当事人,其他人都是在看天书。
    据我朋友说一个6人的组在发ib userspace 驱动,一个人写核心,2个人修修补补做做测试,一个qa,一个写testcase,再来一个打酱油的。
    echo1937
        21
    echo1937  
       2015-06-25 15:17:26 +08:00
    @Andiry 整个淘宝内核组也才10个人啊,我们这种小公司哪里去找kernel工程师啊。
    Andiry
        22
    Andiry  
       2015-06-26 01:28:26 +08:00
    @echo1937 不是只有淘宝内核组才叫kernel工程师,写驱动的,做嵌入式的和kernel打交道的都算。
    monnand
        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内核的那个东西……
    johnsmith123
        24
    johnsmith123  
    OP
       2015-06-26 08:36:10 +08:00
    @monnand ...很具有创造力的想法:) 关于RH7和RHEL7..我承认是我简写错误,不过现在也没多少人会想到RH7这个老古董了。
    monnand
        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年的历史了。。。。。
    johnsmith123
        26
    johnsmith123  
    OP
       2015-06-26 10:01:06 +08:00
    @monnand 大家用的是32.4XX-32.5XX,不要忽略最后一个数字
    monnand
        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.

    三年啦!呵呵!
    johnsmith123
        28
    johnsmith123  
    OP
       2015-06-26 10:30:58 +08:00
    @monnand :) 无言以对
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2925 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 12:52 PVG 20:52 LAX 05:52 JFK 08:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86