我已经通过 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
最简单的方法是查看应用程序栏并查看您连接到的机器。或者,您可以更改ps1
Bash 提示符的值以清楚地说明它是什么。默认情况下它将是这样的{user}@{hostname}
,但不必像这样。
假设 Docker 容器是基于 Ubuntu 的,您可以编辑该~/.bashrc
文件并将其添加到底部:
PS1="Docker> "
然后刷新 Bash 以source ~/.bashrc
查看更改。您的提示现在应如下所示:
Docker>
希望这能给你提供一个可以考虑的选择。
答案3
只需运行此命令(在 ssh、本地或 docker 内部):
hostmane
另外,您还可以查看知识产权主机地址通过:
hostname -i