nsenter 是一个可以用来进入到目标程序说在 namespace 中运行命令的工具,一般可以用于在容器外 debug 容器中运行的程序。简单记录一下 nsenter 的常用用法。

常用参数

最常用的参数组合是:

# 有的版本不一定有 -a 这个参数
nsenter -a -t <pid> <command>
nsenter -m -u -i -n -p -t <pid> <command>

参数的含义如下:

-a, --all enter all namespaces of the target process by the default /proc/[pid]/ns/* namespace paths.

-m, --mount[=] enter mount namespace

-u, --uts[=] enter UTS namespace (hostname etc)

-i, --ipc[=] enter System V IPC namespace

-n, --net[=] enter network namespace

-p, --pid[=] enter pid namespace

-t, --target target process to get namespaces from

结合 docker 使用用于在某个容器的 namespace 中运行指定程序的常用命令是:

PID=$(docker inspect --format {{.State.Pid}} <container_name_or_ID>)
nsenter -m -u -i -n -p -t $PID <command>

或者

$ ps -elf|grep sshd
$ nsenter --target <PID> --mount --uts --ipc --net --pid

例子:

$ docker run --rm --name test -d busybox  sleep 10000
8115009baccc53a2a5f6dfff642e0d8ab1dfb95dde473d14fb9a06ce4e89364c $ docker ps |grep busybox
8115009baccc busybox "sleep 10000" 9 seconds ago Up 8 seconds test $ PID=$(docker inspect --format {{.State.Pid}} 8115009baccc) $ nsenter -m -u -i -n -p -t $PID ps aux
PID USER TIME COMMAND
1 root 0:00 sleep 10000
7 root 0:00 ps aux $ nsenter -m -u -i -n -p -t $PID hostname
8115009baccc

nsenter 常用操作的更多相关文章

  1. [容器]docker-ce安装最新版-docker常用操作

    社区: http://www.dockerinfo.net/rancher http://dockone.io/ https://www.kubernetes.org.cn/ 1,docker安装配置 ...

  2. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  3. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

  4. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

  5. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  6. nodejs配置及cmd常用操作

    一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...

  7. Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理

    摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■  详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...

  8. python 异常处理、文件常用操作

    异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm

  9. byte数据的常用操作函数[转发]

    /// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...

  10. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

随机推荐

  1. 使用 onNuxtReady 进行异步初始化

    title: 使用 onNuxtReady 进行异步初始化 date: 2024/8/16 updated: 2024/8/16 author: cmdragon excerpt: 摘要:本文详细介绍 ...

  2. .NET 8 + Vue 3 极简 RABC 权限管理系统

    前言 在日常工作中,几乎每家公司都需要一个后台管理系统来处理各种任务.为了帮助大家快速搭建这样一个系统,给大家介绍一个基于最新技术 .NET 8 和前端框架 Vue 3 实现的极简 RABC(基于角色 ...

  3. Python的OpenCV转换图像大小

    在Python中,使用OpenCV库来转换图像大小是一个常见的操作,它可以帮助你调整图像到特定的尺寸,以适应不同的应用场景,比如图像预处理.模型输入等.下面是一个详细的代码示例,展示了如何使用Open ...

  4. 补: Rest 风格请求处理的的内容补充(1)

    补: Rest 风格请求处理的的内容补充(1) Rest风格请求:注意事项和细节 客户端是PostMan 可以直接发送Put,delete等方式请求,可不设置Filter 如果哟啊SpringBoot ...

  5. VMware安装CentOS7及远程登录详细教程

    写在前面 主要使用软件: VMware Workstation Pro17 Navicat Premium17 Xshell7 Xftp7 1.在虚拟机安装CentOS7 访问阿里云镜像站 ,选择标记 ...

  6. 【笔记】利用七牛云CDN加速提高前端图片静态资源访问速率

    第一步,注册七牛云账号 打开 七牛开发者平台,选择 注册,注册后登录系统然后实名认证. 第二步,创建七牛云空间 七牛对象存储将数据文件以资源的形式上传到空间中.您可以创建一个或者多个空间,然后向每个空 ...

  7. Angular 18+ 高级教程 – Coding Style Guide 编码风格

    前言 Angular 从 v14 开始大改特改,改最多的就是编码风格. 以前是 class first,Decorator first,mutable first. 现在变成了 function fi ...

  8. OData – Get Started 搭建单侧环境

    前言 之前写过 EF Core – Get Started 搭建单侧环境, 这篇补上一个 WebApi + EF Core + OData 创建项目 dotnet new webapi -o EfCo ...

  9. Let's Encrypt Free SSL – Certify The Web

    介绍 随着 Let's Encrypt 的普及. 现在为网站升级到 HTTPS 已经不需要付费了. Let's Encrypt 的 SSL 是免费的, 每 3 个月需要更新一次. 可以完全用 API ...

  10. 实用技巧:根据menuconfig定位一个驱动涉及到的源文件

    根据menuconfig定位一个驱动涉及到的源文件,这个是很常用的,因为有时候你需要参考别人的驱动代码.新手不知道如何定位驱动相关源码,这篇文章将告之. 假设我手头有一块开发板,现在我想要获取板载ov ...