进入 Linux 内核命名空间 (namespaces) 的命令行工具 nsenter
基本用法
nsenter [options] command [command-args]
[options]:指定进入哪个命名空间以及如何进入。
command:在命名空间中运行的命令。
[command-args]:传递给命令的参数。
-t
例如:-t 1234 表示进入 PID 为 1234 的进程的命名空间。
-n:进入网络命名空间。
例如:-n 表示进入网络命名空间。
-m:进入内存命名空间。
例如:-m 表示进入内存命名空间。
-u:进入用户命名空间。
例如:-u 表示进入用户命名空间。
-i:进入 IPC 命名空间。
例如:-i 表示进入 IPC 命名空间。
-p:进入 PID 命名空间。
例如:-p 表示进入 PID 命名空间。
-U:退出所有命名空间。
例如:-U 表示退出所有命名空间。
-F:进入文件系统命名空间。
例如:-F 表示进入文件系统命名空间。
--all:进入所有命名空间。
例如:--all 表示进入所有命名空间。
示例
进入 PID 为 1234 的进程的网络命名空间,并显示该命名空间中的网络接口信息
nsenter -t 1234 -n sh -c 'ip addr show'
进入 PID 为 1234 的进程的 PID 命名空间,并显示该命名空间中的进程列表
nsenter -t 1234 -p sh -c 'ps aux'
进入 PID 为 1234 的进程的所有命名空间,并显示该命名空间中的主机名
nsenter -t 1234 --all sh -c 'hostname'