Docker 为什么要求 CentOS-系统在 6.5 以上?既然只用到内核,只升级内核为什么不可以?
既然 centos 是以 linux 内核为基础将各种开源的软件编译成操作系统。为什么有些 Linux 软件比如 docker,既要求升级 os 版本,又要求升级内核? 只升级内核为什么不可以? 谢谢
既然 centos 是以 linux 内核为基础将各种开源的软件编译成操作系统。为什么有些 Linux 软件比如 docker,既要求升级 os 版本,又要求升级内核? 只升级内核为什么不可以? 谢谢
我看了下官方文档,说的是:
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
谢谢你分享的链接,我去看了好像二进制安装只对内和和 64 位系统有要求? 你意思就是二进制安装方式对操作系统的发行版本不做限制了?
1 、官方说支持 7,并不代表绝对不支持 6,只是说官方未做相应测试,也不做兼容性保证。
2 、一个发行版的版本号,往往是代指了一组默认的软件包版本号,理论上来说,你可以把 CentOS 6 自带的所有软件包都升级到 7 的默认版本,那么这个时候它是 7 还是 6 呢?
3 、二进制安装的要求,说白了就是抛开发行版,只看具体的限制,所以限制条件会写的更明晰一些。
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 了,所以大家都不太愿意去支持这么古老的发行版了。