目录
查询cgroup信息
最简单精准的方式就是查询系统进程的cgroup信息,通过响应的内容可以识别当前进程所处的运行环境,就可以知道是在虚拟机、docker还是kubepods里。
cat /proc/1/cgroup
docker 环境下:
K8s环境下:
虚拟机环境下:
检查/.dockerenv文件
通过判断根目录下的 .dockerenv文件是否存在,可以简单的识别docker环境。
K8s&docker环境下:ls -alh /.dockerenv 可以找到文件。
虚拟机环境下:是没有这个.dockerenv文件的。
检查mount信息
利用mount查看挂载磁盘是否存在docker相关信息。
K8s&docker环境下:
虚拟机环境下:
查看硬盘信息
fdisk -l 容器输出为空,非容器有内容输出。
K8s&docker环境下:
虚拟机环境下:
查看文件系统以及挂载点
df -h 检查文件系统挂载的目录,也能够简单判断是否为docker环境。
K8s&docker环境下:
虚拟机环境:
环境变量
docker容器和虚拟机的环境变量也有点区别,但不好判断,但pod里面的环境变量其实是很明显的。
K8s环境下: