GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann festgestellt werden, ob ein Prozess in lxc/Docker ausgeführt wird?

Auf einem neuen Ubuntu 16.04-System neues systemd &lxc 2.0

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

Der zuverlässigste Weg ist, /proc/1/cgroup zu überprüfen . Es wird Ihnen die Kontrollgruppen des Init-Prozesses mitteilen und wann Sie nicht sind in einem Container ist das / für alle Hierarchien. Wenn Sie drinnen sind B. ein Container, sehen Sie den Namen des Ankerpunkts. Bei LXC/Docker-Containern ist es so etwas wie /lxc/<containerid> oder /docker/<containerid> bzw..


Docker erstellt eine .dockerenv Datei im Stammverzeichnis des Verzeichnisbaums im Container. Dies kann durch Ausführen eines ls -la /.dockerenv angezeigt werden um zu zeigen, dass es beim Start des Containers erstellt wird.

Sie können dieses Skript ausführen, um Folgendes zu überprüfen:

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

MEHR: Ubuntu hat tatsächlich ein Bash-Skript:/bin/running-in-container und es kann den Typ des Containers zurückgeben, in dem es aufgerufen wurde. Könnte hilfreich sein. Kenne aber keine anderen großen Distributionen.


Linux
  1. So verwenden Sie Podman in einem Container

  2. Wie führe ich ein Programm in einem Docker-Container aus?

  3. Wie melde ich mich beim Lxc-Container an?

  4. So führen Sie MySQL in einem Docker-Container aus

  5. So weisen Sie einem Docker-Container eine statische IP zu

So installieren Sie Docker unter Debian 11

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So richten Sie einen Apache Docker-Container ein

So führen Sie SSH in einen Docker-Container ein

So verwalten Sie Docker-Container