Bash

如何在bash腳本中檢查它是docker還是主機?

  • September 3, 2020

我正在為 docker 容器編寫一個 shell 腳本。

我想在執行我的腳本之前檢查它是 docker 容器還是主機。

像這樣的東西:

if $MACHINE=docker; then
  echo proceed
elif $MACHINE=host; then
  echo 'it's not container'
  exit
fi

您可以檢查是否有任何控制組屬於 docker:

if grep -q docker /proc/1/cgroup; then 
  echo inside docker 
else
  echo on host
  exit
fi

你可以使用virt-what,它現在可以辨識 Docker 了。您可以使用apt install virt-whatyum install virt-what分別在 Debian 及其衍生產品或 Red Hat 及其衍生產品上安裝它。如果它返回程式碼 0,則沒有錯誤,它是物理機或未辨識的虛擬機類型。碼頭工人返回docker.

virt-what 檢測到的平台

引用自:https://unix.stackexchange.com/questions/607695