文章目录
- 一 环境准备
 - 二 需求
 - 三 解决
 
一 环境准备
虚拟机IP:10.0.0.100
 拉取的三个镜像,镜像名称与ID如下:
[root@canway01 ~]# docker image ls
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx             latest              f9c14fe76d50        2 hours ago         143 MB
docker.io/centos            6.9                 2199b8eb8390        4 years ago         195 MB
docker.io/google/cadvisor   latest              eb1210707573        4 years ago         69.6 MB
 
运行以下命令,交互式启动容器:
docker container run -it 2199b8eb8390
 
检查容器状态:
[root@canway01 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
354fd8ba2770        2199b8eb8390        "/bin/bash"              33 minutes ago      Up 33 minutes                                suspicious_yalow
 
镜像为centos:6.9的容器已经运行
二 需求
举一个最简单的例子,许多容器由于为了轻量化,没有安装Linux最基本的命令工具,如果想要ping其他IP,就会因为没有ping命令而十分尴尬。
三 解决
nsenter是一个可以在指定进程的命令空间下运行指定程序的命令,它最典型的用途就是进入容器的网络命令空间。
虽然容器没有ping命令,但是可以使用容器外的宿主机的命令工具,实现网络的debug。
首先检查该容器的进程。
 上述检查容器状态,我们得到了该容器的ID。354fd8ba2770
[root@canway01 ~]# docker inspect -f {{.State.Pid}} 354fd8ba2770
96248
 
得到了容器进程的ID 96248
接着使用nsenter命令
[root@canway01 ~]# nsenter -n -t 96248
 
此时就可以使用容器内本不存在的命令。














![老手机安装apk包时出现[解析包时出现错误]](https://img-blog.csdnimg.cn/12bb98ae345a4f8cae9efeca0c8b988b.png#pic_center)





