为什么 Docker 容器中的内核版本与 Ubuntu 版本不匹配?

为什么 Docker 容器中的内核版本与 Ubuntu 版本不匹配?

我有一个基于 Ubuntu 14.10 构建的 Docker 容器。当我登录容器检查 Ubuntu 版本和内核版本时,我看到以下内容:

root@~$>> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.10
Release:    14.10
Codename:   utopic   

root@~$>> uname -a
    Linux ambiata-aws 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

我以为 Ubuntu 14.10 应该是内核版本 3.16(如上所述这里),那么为什么我的内核版本是 3.13.0-24-generic 呢?

我之所以问这个问题,是因为 3.13.0-29-generic 中有一个补丁,我想使用它(即在我的 docker 容器中让 fallocate 在 AUFS 上运行),该补丁已在讨论中这里

答案1

什么是 Docker?

轻的

在单台机器上运行的容器共享相同的操作系统内核;它们可以立即启动并且占用更少的 RAM。镜像由分层文件系统构建并共享通用文件,从而使磁盘使用和镜像下载更加高效。

容器在主机操作系统内核上运行。对于你的情况,主机可能是 Ubuntu 14.04(运行原始内核)或 Ubuntu 12.04(运行来自 trusty 的内核)硬件支持堆)。

如果主机是 Ubuntu 14.04,您可以安装内核 3.16:

sudo apt-get install linux-generic-lts-utopic

或者内核3.19:

sudo apt-get install linux-generic-lts-vivid

对于 Ubuntu 12.04,内核 3.13 是最新的官方内核。

相关内容