nsenter比docker exec更底层的命令

文章目录

    • nsenter介绍
    • 安装方法
    • 简单使用

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 

nsenter比docker exec更底层的命令_第1张图片

你可能感兴趣的:(docker,容器,运维)