有人可以解释一下吗:
这些是在 Centos6 上运行的基于 CC7 的容器内的命令。
[cmsbuild@f6c45f375b0e build]$ cat /etc/system-release
CentOS Linux release 7.2.1511 (Core)
[cmsbuild@f6c45f375b0e build]$ uname -a
Linux f6c45f375b0e 2.6.32-642.11.1.el6.x86_64 #1 SMP Wed Nov 16 09:40:09 CET 2016 x86_64 x86_64 x86_64 GNU/Linux
el6
为什么命令输出中有一个uname
?它来自主机系统吗?
答案1
是的,它报告了核心版本,在您的主机上运行。容器与主机共享内核,不像虚拟机。
不要考虑像虚拟机这样的容器,而应将其视为具有一组隔离名称空间的一个或一组进程:
- 文件系统
- 网络堆栈
- 用户 ID
- 和更多
即使您的容器文件系统包含一个不会被加载的内核,容器进程中的系统库也会与现有正在运行的内核进行通信。
uname 二进制文件调用 uname() 系统调用,该调用直接与内核对话,它不查看文件系统上的任何文件