判断自己的 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 ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
2469 0 2021-01-12
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2025-12-05
今日天气
随机推荐
09-01
Zabbix 监控 Nginx 的连接状态
01-05
Linux 下编译安装使用 busybox
02-17
OpenStack用户获取root权限
08-13
zabbix 5.0 添加 agent 监控主机
09-07
记一次服务器异常关机磁盘只读问题
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:15条
- 本站总访问量 488588 次
@ymidsuwfoa 这篇文章不错!
@svmuvwpuqi 真棒!
@smdxydrauu 博主太厉害了!
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...


