1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

nsenter命令使用大全

nsenter和命名空间

大家都知道,namespace是Linux中用于隔离资源的特性,而nsenter则可以在不使用docker exec的情况下进入别的命名空间,常用于调试网络等场景。

nsenter命令使用大全

安装与选项说明

nsenter一般在Linux发行版自带(util-linux包),选项说明如下:

  • -t, --target pid:指定被进入命名空间的目标进程的pid
  • -m, --mount[=file]:进入mount命名空间。如果指定了file,则进入file的命名空间
  • -u, --uts[=file]:进入uts命名空间。如果指定了file,则进入file的命名空间
  • -i, --ipc[=file]:进入ipc命名空间。如果指定了file,则进入file的命名空间
  • -n, --net[=file]:进入net命名空间。如果指定了file,则进入file的命名空间
  • -p, --pid[=file]:进入pid命名空间。如果指定了file,则进入file的命名空间
  • -U, --user[=file]:进入user命名空间。如果指定了file,则进入file的命名空间
  • -G, --setgid gid:设置运行程序的gid
  • -S, --setuid uid:设置运行程序的uid
  • -r, --root[=directory]:设置根目录
  • -w, --wd[=directory]:设置工作目录

使用例子

以下是一个使用例子,获取容器的pid并进入对应的pid命名空间,执行命令查看容器的网络情况。

# 获取容器的pid
docker inspect alpine -f '{{.State.Pid}}'

# 进入pid对应的namespace的ns命名空间,这时可以执行节点的ip addr命令查看对应pid的网络情况
sudo nsenter --target $PID --net

# 等同于docker exec
nsenter --target $PID --mount --uts --ipc --net --pid

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7457.html