nsenterl与的挂载传播
nsenter 和“挂载传播”分别解决了**“如何进入容器环境”和“挂载点树结构如何同步”**这两个核心问题。 一、nsenter:Linux 命名空间的“任意门” nsenter (no-space enter) 是一个功能极其强大的系统级工具。它的作用是:进入一个或多个指定的 Linux 命名空间(Namespace)并执行命令。 1. 为什么需要它? LXC 容器之所以看起来像独立的系统,是因为它利用了内核的 Namespace 技术(包括 PID、网络、挂载、UTS、用户等)。 如果你想在宿主机上,像是在容器内部一样查看网络接口(ip addr)。 如果你想在容器内部运行一个宿主机才有的工具(比如容器里没装 tcpdump,但你想抓容器网卡的包)。 2. 基本用法 要使用它,你得先知道容器在宿主机上的 PID(进程 ID): # 获取容器 241 的 PID PID=$(lxc-info -n 241 -p -H) # 进入该 PID 的所有命名空间(挂载、网络、进程、主机名等) nsenter -t $PID -m -n -i -p -u /bin/sh 3. 与 pct exec 的区别 pct exec:是 PVE 封装好的命令,它会处理好权限映射、环境变量等,最稳妥。 nsenter:是原生的内核操作。它不经过 LXC 的管理层,直接把你的当前 Shell “瞬移”进那个环境。它常用于 pct exec 失效(比如容器 init 进程挂了但命名空间还在)时的“抢救”。 二、挂载传播 (Mount Propagation) 挂载传播定义了当你在宿主机或容器内进行挂载操作时,这个动作是否会“传播”给另一方。 ...