$(uname -a) returning the same in docker host or a

2019-01-26 07:27发布

问题:

Why $(uname -a) returns the same Linux kernel than the host machine inside a docker container?

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

Even though my host machine is Ubuntu 14.04 (trusty) while the container is Ubuntu 15.04 (vivid) and should have kernel 3.19

回答1:

Docker uses the host operating system kernel, there is no custom or additional kernel inside the container. All containers running on the machine are sharing this "host" kernel.

See for more information this question on SuperUser.



回答2:

  • cat /etc/os-release, or
  • cat /etc/issue for CentOS

See https://serverfault.com/a/805390/161568.