GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo determinar si un proceso se ejecuta dentro de lxc/Docker?

En un nuevo sistema ubuntu 16.04, nuevo systemd y lxc 2.0

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

La forma más confiable es verificar /proc/1/cgroup . Le indicará los grupos de control del proceso de inicio y cuándo no en un contenedor, será / para todas las jerarquías. Cuando estás dentro un contenedor, verá el nombre del punto de anclaje. Con contenedores LXC/Docker, será algo así como /lxc/<containerid> o /docker/<containerid> respectivamente.


Docker crea un .dockerenv archivo en la raíz del árbol de directorios dentro del contenedor. Esto se puede ver realizando un ls -la /.dockerenv para mostrar que se crea en el inicio del contenedor.

Puede ejecutar este script para verificar:

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

MÁS: Ubuntu en realidad tiene un script bash:/bin/running-in-container y puede devolver el tipo de contenedor en el que se invocó. Podría ser útil. Sin embargo, no conozco otras distribuciones importantes.


Linux
  1. Cómo usar Podman dentro de un contenedor

  2. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  3. Cómo ejecutar MySQL en un contenedor Docker

  4. Cómo instalar Vim en un contenedor Docker

  5. Cómo ejecutar un trabajo cron dentro de un contenedor docker

Cómo instalar Docker en Debian 11

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker

Cómo configurar un contenedor Apache Docker

Cómo usar SSH en un contenedor Docker

Cómo gestionar contenedores Docker