nsenter工具进入docker容器
2017-10-18 23:26
148 查看
nsenter工具进入docker容器
概述
nsenter安装
nsenter使用
参考资料
概述
对于运行在后台的docker容器,我们经常需要做的事情是进入到容器中,docker为我们提供了docker exec 、docker attach 命令,并且还提供了nsenter工具,外部工具供我们使用。docker attach存在的问题是:当多个窗口同时attach到同一个容器时,所有的窗口都会同步的显示,假如其中的一个窗口发生阻塞时,其它的窗口也会阻塞,docker attach命令可以说是最不方便的进入后台docker容器的方法。docker exec命令是在docker 1.3之后增加的一个比dockerattach命令更加方便的命令。和docker exec差不多方便的命令是nsenter工具。
nsenter安装
$ cd /tmp; $ curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-; cd util-linux-2.24; $ ./configure --without-ncurses $ make nsenter && sudo cp nsenter /usr/local/bin1
2
3
4
nsenter使用
在使用nsenter命令之前需要获取到docker容器的进程,然后再使用nsenter工具进去到docker容器中,具体的使用方法如下:$ docker inspect -f {{.State.Pid}} 容器名或者容器id #每一个容器都有.State.Pid,所以这个命令除了容器的id需要我们根据docker ps -a去查找,其他的全部为固定的格式 $ nsenter --target 上面查到的进程id --mount --uts --ipc --net --pid #输入该命令便进入到容器中1
2
解释nsenter指令中进程id之后的参数的含义:
* –mount参数是进去到mount namespace中
* –uts参数是进入到uts namespace中
* –ipc参数是进入到System V IPC namaspace中
* –net参数是进入到network namespace中
* –pid参数是进入到pid namespace中
* –user参数是进入到user namespace中
在Linux中,最爱简单的查看指定命令参数含义的办法是在终端中输入:
$ nsenter --help #会回显所有与该命令有关的参数 $ man nsenter #能查到更加详细的使用示例和参数说明1
2
参考资料
http://www.oschina.net/translate/enter-docker-container?print
相关文章推荐
- nsenter工具进入docker容器
- nsenter工具进入docker容器
- 当Docker为后台模式,重新进入该容器
- docker 进入容器
- docker 运行nginx并进入容器内部、端口映射
- centos7下安装docker(8.2进入容器)
- Docker 进入启动容器
- docker 进入正在运行的容器
- Docker容器进入的4种方式以及tomcat查看日志
- docker学习六 容器的启动、终止、进入和删除
- docker容器轻量级web管理工具之portainer
- docker进入容器
- 如何进入到Docker容器内部
- docker部署shipyard容器管理工具
- 分布式进阶(七)Ubuntu下如何进入 Docker 容器
- 利用pipework开源网络配置工具配置docker容器网络和host主机网络在同一个网段
- 进入docker容器之nsenter脚本
- Docker容器进入的4种方式
- 分布式进阶(七)Ubuntu下如何进入 Docker 容器
- 如何进入到Docker容器内部