GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menentukan apakah suatu proses berjalan di dalam lxc/Docker?

Pada sistem ubuntu 16.04 baru, systemd &lxc 2.0 baru

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

Cara paling andal adalah dengan memeriksa /proc/1/cgroup . Ini akan memberi tahu Anda grup kontrol dari proses init, dan saat Anda tidak dalam wadah, itu akan menjadi / untuk semua hierarki. Saat Anda berada di dalam wadah, Anda akan melihat nama titik jangkar. Dengan wadah LXC/Docker, itu akan menjadi seperti /lxc/<containerid> atau /docker/<containerid> masing-masing.


Docker membuat .dockerenv file di akar pohon direktori di dalam wadah. Ini dapat dilihat dengan melakukan ls -la /.dockerenv untuk menunjukkan bahwa itu dibuat pada startup kontainer.

Anda dapat menjalankan skrip ini untuk memverifikasi:

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

LEBIH: Ubuntu sebenarnya memiliki skrip bash:/bin/running-in-container dan itu dapat mengembalikan jenis wadah yang telah dipanggil. Mungkin bisa membantu. Namun, tidak tahu tentang distro besar lainnya.


Linux
  1. Bagaimana Cara Menjalankan Program Di Dalam Wadah Docker?

  2. Cara Menetapkan IP Statis ke Wadah Docker

  3. Cara Keluar dari Kontainer Docker

  1. Cara menggunakan Podman di dalam wadah

  2. Bagaimana Cara Masuk Ke Wadah Lxc?

  3. Cara Menjalankan MySQL Dalam Wadah Docker

  1. Cara SSH Ke Wadah Docker

  2. Bisakah buruh pelabuhan berjalan di dalam Wadah Linux?

  3. Apa PID di host, dari proses yang berjalan di dalam container Docker?