Docker最小内核版本3.8.13或3.10

时间:2015-03-23 17:10:46

标签: docker linux-kernel version

在Docker网站上,我看到的信息即将发生冲突。

页面: https://docs.docker.com/installation/oracle/ 说" Docker要求在Oracle Linux上使用Unbreakable Enterprise Kernel Release 3(3.8.13)或更高版本。"

页面: https://docs.docker.com/installation/binaries/ 说3.10是必需的。

我猜测这些内容被添加到3.8.13的特殊版本中,否则需要版本3.10。

如果有人能给出一些很好的澄清。

3 个答案:

答案 0 :(得分:14)

正确;在 general 中,内核3.10是绝对最小的内核版本,它支持Docker运行稳定所需的功能(虽然更新版本是首选)。

然而,一些Linux发行版的后端端口功能适用于较旧的内核,因此它们仍然能够运行Docker。例如,Red Hat Enterprise Linux 6.5是able to run Docker on a kernel 2.6(它仍然是一个12岁的内核,但是......)

总结;

  • 始终运行您的发行版提供的最新内核版本
  • 使用自定义内核替换您的发行版提供的内核可能可以正常工作,但不受官方支持。
  • 一些(云)提供商用自定义版本替换内核;这是一些问题的原因。
  • 如果您正在构建自己的内核,请使用最新版本(docker 利用最新版本中的某些功能)

还有一个shell脚本来检查您的系统是否具有所需的依赖关系并检查哪些功能可用;

https://github.com/docker/docker/blob/master/contrib/check-config.sh

<强>更新

从Docker 1.8.0开始,Red Hat Enterprise Linux 6和CentOS 6(以及Kernel 2.6)不再支持运行Docker的平台,并且不会为这些发行版发布新的软件包。在这些平台上运行Docker是非常不鼓励的,因为为RHEL 6 / CentOS 6发布的最新版本是Docker 1.7.1。建议将您的系统升级到RHEL 7 / CentOS 7,这是受到积极支持的。

答案 1 :(得分:0)

我对Oracle Unbreakable Linux 7.0没有成功,这与Red Hat 7.0完全相同。

下面的示例显示从最新的Ubuntu创建的相当标准的容器在创建后不会启动。

[vagrant@oracle-70-x64 ~]$ docker run -t -i ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from ubuntu
e118faab2e16: Pull complete 
7e2c5c55ef2c: Pull complete 
e04c66a223c4: Pull complete 
fa81ed084842: Already exists 
ubuntu:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:738edd684282277c07f23277718e43562daf2ee210f7aca9a13fae65f0159ddd
Status: Downloaded newer image for ubuntu:latest
root@6f47331e6c6a:/# exit
exit
[vagrant@oracle-70-x64 ~]$ docker ps -all
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
6f47331e6c6a        ubuntu:latest       "/bin/bash"         36 seconds ago      Exited (0) 7 seconds ago                       boring_lovelace     
[vagrant@oracle-70-x64 ~]$ docker start 6f47331e6c6a
Error response from daemon: Cannot start container 6f47331e6c6a: [8] System error: Unit docker-6f47331e6c6a85410028b661bebe997192bb15dfa2f6cf1d92328586a5afa2c0.scope already exists.
FATA[0000] Error: failed to start one or more containers 
[vagrant@oracle-70-x64 ~]$

问题是内核版本。这是旧的

[vagrant@oracle-70-x64 ~]$ uname -a
Linux oracle-70-x64.vagrantup.com 3.8.13-35.3.1.el7uek.x86_64 #2 SMP Wed Jun 25 15:27:43 PDT 2014 x86_64 x86_64 x86_64 GNU/Linux

与例如Ubuntu相比

$ uname -a
Linux kore 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

答案 2 :(得分:0)

摆脱UEK,你将拥有一个更现代化的内核。

这就是我在没有uek的OEL 7上所拥有的: 3.10.0-229.14.1.el7.x86_64