我正在为 docker 容器编写 shell 脚本。
我想在运行脚本之前检查它是 docker 容器还是主机。
像这样的东西:
if $MACHINE=docker; then
echo proceed
elif $MACHINE=host; then
echo 'it's not container'
exit
fi
Run Code Online (Sandbox Code Playgroud)
您可以检查是否有任何控制组属于 docker:
if grep -q docker /proc/1/cgroup; then
echo inside docker
else
echo on host
exit
fi
Run Code Online (Sandbox Code Playgroud)
你可以使用virt-what
,它现在可以识别Docker了。您可以分别在 Debian 及其衍生产品或 Red Hat 及其衍生产品上使用apt install virt-what
或安装它。yum install virt-what
如果返回代码0,没有错误,则为物理机或未识别的虚拟机类型。码头工人归来docker
。