0

如果我在我的 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

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

4

1 回答 1

0

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

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

$(uname -a) 在 docker 主机或任何 docker 容器中返回相同的值

于 2021-08-25T10:39:15.727 回答