我的 Docker 容器中运行哪个操作系统?

我的 Docker 容器中运行哪个操作系统?

大多数时候,使用其中之一,我可以知道我的 Docker 容器中正在运行哪个操作系统(alpine、centOS 等)

但这一次,我说不出来:

bash-4.2$ uname -a       
Linux 6fe5c6d1451c 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

bash-4.2$ more /etc/issue
\S
Kernel \r on an \m

有什么方法可以获取正在运行的操作系统的文本版本?

答案1

我喜欢用屏幕抓取。您可能想尝试一下。

如果你查看代码,你就会明白它是如何确定分布的:

  • lsb_release -sirc
  • cat /etc/os-release

也涵盖 CentOS:

  • cat /etc/issue

答案2

uname将告诉您正在运行的内核,即主机操作系统内核(与虚拟机不同,容器共享相同的内核)。

要识别容器的基础映像,容器内部没有可靠的解决方案。您可以查找主要供应商的指示,例如 Janosch 提供的指示(对于大多数供应商,如 Debian、CentOS 和 Alpine,是 /etc/os-release,对于 Ubuntu,是 /etc/lsb-release)。您还可以检查包管理工具是否已安装(/etc/apk、/etc/apt、/etc/yum)。

在容器外部,您可以检查镜像并跟踪层以查看镜像的来源,但这涉及到定位 sha256 校验和。最好的方法是查看用于构建镜像的 Dockerfile。

答案3

docker 修剪容器,在我使用 /etc/ 失败之后,这个方法对我有用发布、/etc/issue、lsb_release 等(我知道有些是针对特定发行版的):

执行此命令

# cat /proc/version
Linux version 4.19.121-linuxkit (root@18b3f92ade35) (gcc version 9.2.0 (Alpine 9.2.0)) #1 SMP Thu Jan 21 15:36:34 UTC 2021

来源:https://unix.stackexchange.com/questions/23833/how-can-i-tell-what-version-of-linux-im-using/326917#326917

答案4

在 docker 容器中,etc 文件夹下应该有一个名为 debian_version 的文件。您可以执行 cat debain_version。它将显示 debian 版本。

相关内容