Linux

哪個作業系統在我的 Docker 容器中執行?

  • April 20, 2022

大多數時候,使用這兩者之一,我可以知道哪個作業系統在我的 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

有什麼方法可以獲得它正在執行的作業系統的文本版本?

我喜歡使用Screenfetch。您可能想嘗試一下。

如果您查看程式碼,您可以看到它如何確定分佈:

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

還要涵蓋 CentOS:

  • cat /etc/issue

uname將告訴您正在執行的核心,即主機作業系統核心(與 VM 不同,容器共享相同的核心)。

要辨識容器的基本映像,容器內部沒有保證的解決方案。您可以從 Janosch 等主要供應商那裡尋找指針(/etc/os-release 用於大多數供應商,如 Debian、CentOS 和 Alpine,或 /etc/lsb-release 用於 Ubuntu)。您還可以檢查軟體包管理工具是否已安裝(/etc/apk、/etc/apt、/etc/yum)。

在容器之外,您可以檢查圖像並跟踪圖層以查看圖像的來源,但這會涉及到定位 sha256 校驗和。最好的方法是查看用於建構映像的 Dockerfile。

引用自:https://serverfault.com/questions/805389