$(uname -a)在Docker主机或任何Docker容器中返回相同的结果。

32

为什么在Docker容器中运行$(uname -a)命令返回的Linux内核版本与主机机器相同?

uname -a
#=> Linux leo 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

docker run -ti --rm ubuntu:vivid-20150611 uname -a
#=> Linux 147c3aff216b 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

尽管我的主机是Ubuntu 14.04(trusty),容器却是Ubuntu 15.04(vivid)应该拥有内核3.19

2个回答

27
Docker使用主机操作系统内核,容器内没有自定义或额外的内核。在机器上运行的所有容器都共享这个“主机”内核。
有关更多信息,请参见SuperUser上的this question

19

1
也帮助解决了Debian容器的问题。 - Randolph
较新版本的CentOS似乎也会填写/etc/os-releasedocker run --rm centos sh -c 'cat /etc/os-release | grep -e "^NAME="' --> NAME="CentOS Linux" - Raphael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接