GNU/Linux >> Linux Esercitazione >  >> Linux

Come determinare se un processo viene eseguito all'interno di lxc/Docker?

Su un nuovo sistema Ubuntu 16.04, nuovo systemd e lxc 2.0

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

Il modo più affidabile è controllare /proc/1/cgroup . Ti dirà i gruppi di controllo del processo init e quando non lo sei in un contenitore, sarà / per tutte le gerarchie. Quando sei dentro un contenitore, vedrai il nome del punto di ancoraggio. Con i contenitori LXC/Docker, sarà qualcosa come /lxc/<containerid> o /docker/<containerid> rispettivamente.


Docker crea un .dockerenv file alla radice dell'albero delle directory all'interno del contenitore. Questo può essere visto eseguendo un ls -la /.dockerenv per mostrare che è stato creato all'avvio del contenitore.

Puoi eseguire questo script per verificare:

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

ALTRO: Ubuntu in realtà ha uno script bash:/bin/running-in-container e può restituire il tipo di contenitore in cui è stato invocato. Potrebbe essere utile. Non conosco altre distribuzioni importanti però.


Linux
  1. Come accedere al contenitore Lxc?

  2. Come eseguire MySQL in un contenitore Docker

  3. Come SSH in un contenitore Docker

  4. Come installare Vim in un contenitore Docker

  5. Come uscire da un container Docker

Come installare Docker su Debian 11

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker

Come configurare un container Docker Apache

Come SSH in un Docker Container

Come gestire i container Docker