GNU/Linux >> Tutoriels Linux >  >> Linux

Comment déterminer si un processus s'exécute dans lxc/Docker ?

Sur un nouveau système Ubuntu 16.04, nouveau systemd &lxc 2.0

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

Le moyen le plus fiable est de vérifier /proc/1/cgroup . Il vous indiquera les groupes de contrôle du processus d'initialisation, et quand vous n'êtes pas dans un conteneur, ce sera / pour toutes les hiérarchies. Quand vous êtes à l'intérieur un conteneur, vous verrez le nom du point d'ancrage. Avec les conteneurs LXC/Docker, ce sera quelque chose comme /lxc/<containerid> ou /docker/<containerid> respectivement.


Docker crée un .dockerenv fichier à la racine de l'arborescence de répertoires à l'intérieur du conteneur. Cela peut être vu en effectuant un ls -la /.dockerenv pour montrer qu'il est créé au démarrage du conteneur.

Vous pouvez exécuter ce script pour vérifier :

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

PLUS : Ubuntu a en fait un script bash :/bin/running-in-container et il peut renvoyer le type de conteneur dans lequel il a été invoqué. Peut être utile. Je ne connais pas les autres distributions majeures.


Linux
  1. Comment utiliser Podman à l'intérieur d'un conteneur

  2. Comment exécuter un programme dans un conteneur Docker ?

  3. Comment exécuter MySQL dans un conteneur Docker

  4. Comment attribuer une adresse IP statique à un conteneur Docker

  5. Comment quitter un conteneur Docker

Comment installer Docker sur Debian 11

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment configurer un conteneur Apache Docker

Comment se connecter en SSH à un conteneur Docker

Comment gérer les conteneurs Docker