nsenter比docker exec更底层的命令

nsenter介绍

nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。典型的用途就是进入容器的网络命令空间。相当多的容器为了轻量级,是不包含较为基础的命令的,比如说ip address,ping,telnet,ss,tcpdump等等命令,这就给调试容器网络带来相当大的困扰:只能通过docker inspect ContainerID命令获取到容器IP,以及无法测试和其他网络的连通性。这时就可以使用nsenter命令仅进入该容器的网络命名空间,使用宿主机的命令调试容器网络。

安装方法

yum -y install util-linux

简单使用

我找了个容器,进入容器内部,执行nload提示命令不存在

[root@localhost ~]# docker exec -it 03 sh
/ # nload
sh: nload: not found

使用命令获取容器的pid

[root@localhost ~]# docker inspect -f {
   {.State.Pid}} 03
69345

使用nsenter进入69345的命名空间

[root@localhost ~]# nsenter -n -t69345
[root@localhost ~]# nload 

在这里插入图片描述

相关推荐

  1. redis中setnx命令底层原理是什么

    2024-01-26 10:42:05       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-26 10:42:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-26 10:42:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-26 10:42:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-26 10:42:05       18 阅读

热门阅读

  1. Objective-C中的nil和null的区别

    2024-01-26 10:42:05       30 阅读
  2. 关于 mapper.xml 中 sql使用 in 执行无效的原因

    2024-01-26 10:42:05       34 阅读
  3. C语言数据类型

    2024-01-26 10:42:05       32 阅读