AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 805389
Accepted
Bob Yoplait
Bob Yoplait
Asked: 2016-09-27 07:18:13 +0800 CST2016-09-27 07:18:13 +0800 CST 2016-09-27 07:18:13 +0800 CST

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

  • 772

大多数时候,使用这两者之一,我可以知道哪个操作系统在我的 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

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

linux operating-system docker
  • 5 5 个回答
  • 110723 Views

5 个回答

  • Voted
  1. Best Answer
    Janosch Gräf
    2016-09-27T07:26:08+08:002016-09-27T07:26:08+08:00

    我喜欢使用Screenfetch。您可能想尝试一下。

    如果您查看代码,您可以看到它如何确定分布:

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

    还要涵盖 CentOS:

    • cat /etc/issue
    • 88
  2. BMitch
    2016-09-27T11:48:01+08:002016-09-27T11:48:01+08:00

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

    要识别容器的基本映像,容器内部没有保证的解决方案。您可以从 Janosch 等主要供应商那里寻找指针(/etc/os-release 用于大多数供应商,如 Debian、CentOS 和 Alpine,或 /etc/lsb-release 用于 Ubuntu)。您还可以检查软件包管理工具是否已安装(/etc/apk、/etc/apt、/etc/yum)。

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

    • 9
  3. Patricio
    2021-04-03T14:26:36+08:002021-04-03T14:26:36+08:00

    在docker trimmed container上,在 /etc/ release、/etc/issue、lsb_release 等没有运气之后,这对我有用(我知道有些是针对特定发行版的):

    以root身份执行此命令:

    # 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

    • 5
  4. Joel.O
    2022-04-21T00:58:08+08:002022-04-21T00:58:08+08:00

    这对我有用,但必须在容器之外:

    docker exec container-name cat /etc/os-release

    当您从容器内部的 bash 提示符处执行相同的命令时,它会给出主机系统的特征。

    这可能是因为一旦启动,docker 容器会共享大部分系统资源以保持轻量级。虽然我在 Linux 下,但 Windows 用户可能会有不同的结果。

    • 0
  5. Aman_Bhala
    2022-08-27T06:30:10+08:002022-08-27T06:30:10+08:00

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

    • 0

相关问题

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • 是什么阻止您升级到较新的操作系统版本?[关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve