V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
johnsmith123
V2EX  ›  Docker

docker 与 CentOS 不得不说的故事

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

    半年前我开始关注这个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   ·   实用小工具   ·   3403 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 11:37 · PVG 19:37 · LAX 03:37 · JFK 06:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.