为什么 php_uname 显示主机名?

Why does php_uname show the name of the host machine?

如果我 运行 在我的 Ubuntu 机器上执行以下操作:

$ uname -a
Linux laptop 5.4.0-81-generic #91~18.04.1-Ubuntu SMP Fri Jul 23 13:36:29 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

如果我运行

$ docker run -i -t php:7.4-cli-alpine3.12 php -r 'print_r(php_uname());'
Linux 1cb5d58282db 5.4.0-81-generic #91~18.04.1-Ubuntu SMP Fri Jul 23 13:36:29 UTC 2021 x86_6

结果几乎相同。在 OSX:

$ docker run -i -t php:7.4-cli-alpine3.12 php -r 'print_r(php_uname());'
Linux eb34336fc3d5 5.10.25-linuxkit #1 SMP Tue Mar 23 09:27:39 UTC 2021 x86_64

为什么我看不到指示容器 运行ning Alpine 的输出?

Docker容器不是虚拟机,技术不同。所有容器都使用主机 Linux 内核。 您最好将容器视为主机内的命名空间 OS。在这个命名空间网络中,磁盘、pid、mnt...是分开的。

这个问题已经回答了多次:

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