我有一个基于 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
轻的
在单台机器上运行的容器共享相同的操作系统内核;它们可以立即启动并且占用更少的 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 是最新的官方内核。