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

Docker 为什么要求 CentOS-系统在 6.5 以上?既然只用到内核,只升级内核为什么不可以?

  •  
  •   programV2 · 2020-10-04 11:15:12 +08:00 via iPhone · 3515 次点击
    这是一个创建于 1513 天前的主题,其中的信息可能已经有所发展或是发生改变。

    既然 centos 是以 linux 内核为基础将各种开源的软件编译成操作系统。为什么有些 Linux 软件比如 docker,既要求升级 os 版本,又要求升级内核? 只升级内核为什么不可以? 谢谢🙏

    15 条回复    2020-10-08 10:08:39 +08:00
    programV2
        1
    programV2  
    OP
       2020-10-04 11:17:36 +08:00 via iPhone
    如果是软件依赖的问题的话,升级相关的依赖就可以了,为什么一定要求升级操作系统版本呢?
    youla
        2
    youla  
       2020-10-04 11:27:43 +08:00
    估计 OTA 一个系统和 FULL_OTA 还是有不少区别的,不然为什么出新镜像,而不是让你一直系统更新...我估计了一通乱讲的……
    also24
        3
    also24  
       2020-10-04 11:28:09 +08:00   ❤️ 1
    这个 6.5 的要求,是从哪里看到的?

    我看了下官方文档,说的是:
    To install Docker Engine, you need a maintained version of CentOS 7. Archived versions aren’t supported or tested.

    https://docs.docker.com/engine/install/centos/#prerequisites


    但是如果你去看二进制安装的文档,里面是写清楚了对内核、软件包的具体要求的:
    https://docs.docker.com/engine/install/binaries/#install-daemon-and-client-binaries-on-linux
    nomansky
        4
    nomansky  
       2020-10-04 11:32:49 +08:00
    理论上可以,但那么多软件依赖你升级得过来么,况且软件又依赖其他软件依赖。我前几天在 centos6.1 上装 php 7.4 可是折腾了好久,这就是兼容老版本的隐形成本
    programV2
        5
    programV2  
    OP
       2020-10-04 11:43:38 +08:00 via iPhone
    @also24 从这篇博文里面看到,可能官方更新了吧。https://www.css3er.com/p/157.html

    谢谢你分享的链接,我去看了好像二进制安装只对内和和 64 位系统有要求? 你意思就是二进制安装方式对操作系统的发行版本不做限制了?
    angryfish
        6
    angryfish  
       2020-10-04 11:47:40 +08:00 via iPhone
    肯定可以啊,只不过,人家没在那些环境做测试,出啥幺蛾子了,你自己抗吧
    also24
        7
    also24  
       2020-10-04 11:53:39 +08:00   ❤️ 1
    @programV2 #5

    1 、官方说支持 7,并不代表绝对不支持 6,只是说官方未做相应测试,也不做兼容性保证。

    2 、一个发行版的版本号,往往是代指了一组默认的软件包版本号,理论上来说,你可以把 CentOS 6 自带的所有软件包都升级到 7 的默认版本,那么这个时候它是 7 还是 6 呢?

    3 、二进制安装的要求,说白了就是抛开发行版,只看具体的限制,所以限制条件会写的更明晰一些。
    LokiSharp
        8
    LokiSharp  
       2020-10-04 12:15:30 +08:00 via iPhone
    可以的,自行解决依赖问题就好了
    0ZXYDDu796nVCFxq
        9
    0ZXYDDu796nVCFxq  
       2020-10-04 14:37:23 +08:00
    CentOS 不是基本可以无脑升级最新小版的吗
    闭眼 yum update
    msg7086
        10
    msg7086  
       2020-10-04 15:38:48 +08:00
    1. 发行版包含内核和各种周边类库。加功能的时候,不仅会涉及到内核,还可能涉及到一些核心库比如 libc6 。

    2. 如果你自己编译,或者别人编译的时候特意降低了依赖库版本,那么编译出来的程序是有可能运行在老系统上的。比如 Debian 官方编译的 PHP 7.4 bullseye 包,因为是在 bullseye 上编译的,所以 libc6 依赖到了 2.29 。( bullseye 上现在是 2.31 。)但是如果你把同样的源码包放在 buster 上编译打包,那么依赖就会降到 2.28 以下。

    所以如果你自己维护 CentOS 发行版上的软件,那么实现 CentOS 老版本上运行 Docker 也是有可能的。但是因为 CentOS 6 早就 End of full updates 了,所以大家都不太愿意去支持这么古老的发行版了。
    wangritian
        11
    wangritian  
       2020-10-04 20:35:08 +08:00
    可能是 6.5 版本才开始支持命名空间
    UnknownR
        12
    UnknownR  
       2020-10-04 22:15:47 +08:00
    你有这时间去升级依赖,安装个系统不是更方便?如果是 docker ce,还是建议 centos 7.8 以上,之前用 7.5 的装了 docker ce,出现了无法启动的问题。
    fox0001
        13
    fox0001  
       2020-10-05 07:35:51 +08:00 via Android
    不是不可以,只是人家官方测试过了,按官方指南去做,少折腾。
    flynaj
        14
    flynaj  
       2020-10-05 11:10:51 +08:00 via Android
    软件依赖不止内核,运行库才是最大问题,Docker 就是解决这个问题的方案之一。已经结束生命周期的操作系统一般不受支持,你写个软件还有测试 xp,ie6 ,那成本大大提高
    julyclyde
        15
    julyclyde  
       2020-10-08 10:08:39 +08:00
    @programV2 不要看这种山寨文章。写这的人水平也许还不如你呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2999 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:55 · PVG 22:55 · LAX 06:55 · JFK 09:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.