判断自己的 Linux 服务器是虚拟机还是物理机还是 Docker 环境
文章
林里克斯
实验平台:
CentOS Linux release 7.8.2003 (AltArch)
systemd-detect-virt Version:
systemd 219
1.命令 systemd-detect-virt
详解
$ systemd-detect-virt --help
-h --help #打印帮助信息
--version #打印版本信息
-c --container #检测是否在容器环境中,(共享内核虚拟化)不一定全正确,会介绍更换的识别的方法
-v --vm #检测是否在虚拟环境中,(虚拟化硬件)
-q --quiet #不输出任何东西,只设置返回值
2.输出结果列表
Type | ID | Product |
---|---|---|
虚拟机 | qemu | QEMU 软件虚拟机(未使用KVM) |
kvm | Linux 内核虚拟机(使用除 Oracle Virtualbox 之外的其他虚拟机管理程序) | |
zvm | s390 z/VM | |
vmware | VMware 虚拟机 | |
microsoft | Hyper-V 虚拟机 | |
oracle | Oracle VirtualBox 虚拟机 | |
xen | Xen 虚拟机(仅 domU, 非 dom0) | |
bochs | Bochs 模拟器 | |
uml | User-mode Linux | |
parallels | Parallels Desktop, Parallels Server | |
bhyve | bhyve, FreeBSD hypervisor | |
qnx | QNX hypervisor | |
容器 | openvz | OpenVZ/Virtuozzo |
lxc | LXC 容器 | |
lxc-libvirt | 通过 libvirt 实现的容器 | |
systemd-nspawn | systemd 最简容器 | |
docker | Docker 容器 | |
rkt | rkt 应用容器 |
3.确认自己机器是否是物理机
$ systemd-detect-virt -v
vmware
#返回 VMware 为虚拟机
$ systemd-detect-virt -v
none
#返回 none 为物理机
3.1 通过命令来判断
$ lscpu | grep -Piq 'Hypervisor vendor' && echo "Virtual Machine" || echo "Physical Machine"
Physical Machine
#物理机
$ lscpu | grep -Piq 'Hypervisor vendor' && echo "Virtual Machine" || echo "Physical Machine"
Virtual Machine
#虚拟机
4.判断自己的机器是否是 Docker
容器
$ cat /proc/1/cgroup | grep -qi docker && echo "Docker" || echo "Not Docker"
Docker
$ cat /proc/1/cgroup | grep -qi docker && echo "Docker" || echo "Not Docker"
Not Docker
#许多容器里都没有 systemd-detect-virt 命令,且此命令并不一定能判断出是否是 Docker 容器
4.1 通过 pid 1
来确认是否容器
#ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jan07 ? 00:00:00 bash /wiz/app/entrypoint.sh
root 32 1 0 Jan07 ? 00:14:22 /usr/bin/redis-server 127.0.0.1:6379
mysql 52 1 0 Jan07 ? 00:22:04 /usr/sbin/mysqld
root 55 1 0 Jan07 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 56 55 0 Jan07 ? 00:00:01 nginx: worker process
nginx 57 55 0 Jan07 ? 00:00:01 nginx: worker process
#PID 为 1 的进程是应用本身,所以是容器
Over~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1831 0 2021-01-12
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2024-12-28
今日天气
随机推荐
05-21
常见的Linux系统简单面试题(二)
04-19
Python 之路字符串(五)
10-25
清除 Windows 资源管理器中不需要的文件夹
06-16
CentOS 操作一块9T的硬盘
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:12条
- 本站总访问量 353618 次
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...