lsns
というコマンドがあり、namespace 一覧を表示できる。
特定のコンテナ(正しくは namespace だけど)のプロセス一覧を表示することも可能なので便利。
ソースは https://github.com/karelzak/util-linux/blob/master/sys-utils/lsns.c
実装的には /proc/${pid}/ns
配下の inode 番号を取得しているだけっぽい。
$ docker run --rm -it alpine:latest sleep 500
$ sudo lsns
NS TYPE NPROCS PID USER COMMAND
4026531835 cgroup 99 1 root /sbin/init
4026531836 pid 98 1 root /sbin/init
4026531837 user 99 1 root /sbin/init
4026531838 uts 98 1 root /sbin/init
4026531839 ipc 98 1 root /sbin/init
4026531840 mnt 94 1 root /sbin/init
4026531860 mnt 1 15 root kdevtmpfs
4026531992 net 98 1 root /sbin/init
4026532161 mnt 1 493 root /lib/systemd/systemd-udevd
4026532162 mnt 1 559 systemd-network /lib/systemd/systemd-networkd
4026532172 mnt 1 601 systemd-resolve /lib/systemd/systemd-resolved
4026532197 mnt 1 1524 root sh
4026532198 uts 1 1524 root sh
4026532199 ipc 1 1524 root sh
4026532200 pid 1 1524 root sh
4026532202 net 1 1524 root sh
$ sudo lsns 4026532200
PID PPID USER COMMAND
1524 1499 root sh
1587 1524 root └─sleep 500