如何知道当前 shell 是来自 docker OS 还是系统主操作系统?

如何知道当前 shell 是来自 docker OS 还是系统主操作系统?

我已经通过 ssh 进入远程 shell。如何确保我正在使用的操作系统不是 docker 容器?

PS:我想知道某种方法可以告诉我 shell 是否来自 docker OS。ubuntu (Unix) 中的某种命令或与系统操作系统不同的某些文件系统

答案1

您可以检查已挂载的文件系统:

# findmnt /
TARGET SOURCE  FSTYPE  OPTIONS
/      overlay overlay rw,relatime,lowerdir=/var/lib/docker/overlay2/l/2BKZYT7DSBOB576UNDXZTPXFKY:...

在这种情况下,根文件系统来自 Docker 覆盖挂载,因此很有可能它是一个 Docker 容器。

答案2

最简单的方法是查看应用程序栏并查看您连接到的机器。或者,您可以更改ps1Bash 提示符的值以清楚地说明它是什么。默认情况下它将是这样的{user}@{hostname},但不必像这样。

假设 Docker 容器是基于 Ubuntu 的,您可以编辑该~/.bashrc文件并将其添加到底部:

PS1="Docker> "

然后刷新 Bash 以source ~/.bashrc查看更改。您的提示现在应如下所示:

Docker> 

希望这能给你提供一个可以考虑的选择。

答案3

只需运行此命令(在 ssh、本地或 docker 内部):

hostmane

另外,您还可以查看知识产权主机地址通过:

hostname -i

https://man7.org/linux/man-pages/man1/hostname.1.html

相关内容