GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistit, zda proces běží uvnitř lxc/Docker?

Na novém systému ubuntu 16.04, nový systemd &lxc 2.0

sudo grep -qa container=lxc /proc/1/environ

Nejspolehlivějším způsobem je zkontrolovat /proc/1/cgroup . Řekne vám kontrolní skupiny procesu init a kdy ne v kontejneru, to bude / pro všechny hierarchie. Když jste uvnitř kontejner, uvidíte název kotevního bodu. S kontejnery LXC/Docker to bude něco jako /lxc/<containerid> nebo /docker/<containerid> respektive.


Docker vytvoří .dockerenv soubor v kořenovém adresáři stromu adresářů uvnitř kontejneru. To lze vidět provedením ls -la /.dockerenv ukázat, že je vytvořen při spuštění kontejneru.

Pro ověření můžete spustit tento skript:

#!/bin/bash
if [ -f /.dockerenv ]; then
    echo "I'm inside matrix ;(";
else
    echo "I'm living in real world!";
fi

VÍCE: Ubuntu má ve skutečnosti bash skript:/bin/running-in-container a může vrátit typ kontejneru, ve kterém byl vyvolán. Může být užitečné. Nevím však o jiných velkých distribucích.


Linux
  1. Jak používat Podman uvnitř kontejneru

  2. Jak spustit program uvnitř kontejneru Docker?

  3. Jak přiřadit statickou IP ke kontejneru Docker

  1. Jak se přihlásit do kontejneru Lxc?

  2. Jak spustit MySQL v kontejneru Docker

  3. Jak SSH do kontejneru Docker

  1. Jak nainstalovat Vim do kontejneru Docker

  2. Jak opustit kontejner Docker

  3. Může docker běžet uvnitř linuxového kontejneru?