• 请不要在回答技术问题时复制粘贴 AI 生成的内容
programV2
V2EX  ›  程序员

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

  •  
  •   programV2 · Oct 4, 2020 via iPhone · 3916 views
    This topic created in 2072 days ago, the information mentioned may be changed or developed.

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

    15 replies    2020-10-08 10:08:39 +08:00
    programV2
        1
    programV2  
    OP
       Oct 4, 2020 via iPhone
    如果是软件依赖的问题的话,升级相关的依赖就可以了,为什么一定要求升级操作系统版本呢?
    youla
        2
    youla  
       Oct 4, 2020
    估计 OTA 一个系统和 FULL_OTA 还是有不少区别的,不然为什么出新镜像,而不是让你一直系统更新...我估计了一通乱讲的……
    also24
        3
    also24  
       Oct 4, 2020   ❤️ 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  
       Oct 4, 2020
    理论上可以,但那么多软件依赖你升级得过来么,况且软件又依赖其他软件依赖。我前几天在 centos6.1 上装 php 7.4 可是折腾了好久,这就是兼容老版本的隐形成本
    programV2
        5
    programV2  
    OP
       Oct 4, 2020 via iPhone
    @also24 从这篇博文里面看到,可能官方更新了吧。https://www.css3er.com/p/157.html

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

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

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

    3 、二进制安装的要求,说白了就是抛开发行版,只看具体的限制,所以限制条件会写的更明晰一些。
    LokiSharp
        8
    LokiSharp  
       Oct 4, 2020 via iPhone
    可以的,自行解决依赖问题就好了
    0ZXYDDu796nVCFxq
        9
    0ZXYDDu796nVCFxq  
       Oct 4, 2020
    CentOS 不是基本可以无脑升级最新小版的吗
    闭眼 yum update
    msg7086
        10
    msg7086  
       Oct 4, 2020
    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  
       Oct 4, 2020
    可能是 6.5 版本才开始支持命名空间
    UnknownR
        12
    UnknownR  
       Oct 4, 2020
    你有这时间去升级依赖,安装个系统不是更方便?如果是 docker ce,还是建议 centos 7.8 以上,之前用 7.5 的装了 docker ce,出现了无法启动的问题。
    fox0001
        13
    fox0001  
       Oct 5, 2020 via Android
    不是不可以,只是人家官方测试过了,按官方指南去做,少折腾。
    flynaj
        14
    flynaj  
       Oct 5, 2020 via Android
    软件依赖不止内核,运行库才是最大问题,Docker 就是解决这个问题的方案之一。已经结束生命周期的操作系统一般不受支持,你写个软件还有测试 xp,ie6 ,那成本大大提高
    julyclyde
        15
    julyclyde  
       Oct 8, 2020
    @programV2 不要看这种山寨文章。写这的人水平也许还不如你呢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3085 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 13:47 · PVG 21:47 · LAX 06:47 · JFK 09:47
    ♥ Do have faith in what you're doing.