使用nsenter进入Docker容器
Docker容器运行后,如何进入容器进行操作呢?起初我是用SSH。如果只启动一个容器,用SSH还能应付,只需要将容器的22端口映射到本机的一个端口即可。当我启动了五个容器后,每个容器默认是没有配置SSH Server的,安装配置SSHD,映射容器SSH端口,实在是麻烦。
我发现很多Docker镜像都是没有安装SSHD服务的,难道有其他方法进入Docker容器?
浏览了Docker的文档,我没有找到答案。还是要求助于无所不能的Google,万能的Google告诉我用nsenter吧。
在大多数Linux发行版中,util-linux包中含有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
cp nsenter /usr/local/bin
使用shell脚本 docker-enter,将如下代码保存为docker-enter,chmod +x docker-enter
#!/bin/shif [ -e $(dirname "$0")/nsenter ]; then# with boot2docker, nsenter is not in the PATH but it is in the same folderNSENTER=$(dirname "$0")/nsenterelseNSENTER=nsenterfiif [ -z "$1" ]; thenecho "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"echo ""echo "Enters the Docker CONTAINER and executes the specified COMMAND."echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."elsePID=$(docker inspect --format "{{.State.Pid}}" "$1")if [ -z "$PID" ]; thenexit 1fishiftOPTS="--target $PID --mount --uts --ipc --net --pid --"if [ -z "$1" ]; then# No command given.# Use su to clear all host environment variables except for TERM,# initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,# and start a login shell."$NSENTER" $OPTS su - rootelse# Use env to clear all host environment variables."$NSENTER" $OPTS env --ignore-environment -- "$@"fifi
运行 docker-enter <container id>,这样就进入到指定的容器中
关于nsenter更详细的使用方法见这里 https://github.com/jpetazzo/nsenter
来源:http://www.hjue.me/post/docker-nsenter?utm_source=tuicool
使用nsenter进入Docker容器相关推荐
- 使用nsenter进入docker容器后端报错 mesg: ttyname failed: No such file or directory
通过nsenter 进入到docker容器的后端总是报下面的错,, [root@devdtt ~]# docker inspect -f {{.State.Pid}} mynginx4 11950 [ ...
- 【云计算】使用nsenter进入Docker容器进行调试
[nsenter安装使用] cd /tmp curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.t ...
- 进入正在运行的Docker容器的4种方式
进入Docker容器比较常见的几种做法如下: 使用docker attach 使用SSH 使用nsenter 使用exec 一.使用docker attach进入Docker容器 Docker提供了a ...
- 进入Docker容器的4种方式
进入Docker容器的4种方式 在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法. 进 ...
- 进入docker容器的方法
登录容器的方式 ssh登录 第 ...
- Docker容器进入的4种方式
Docker容器进入的4种方式 $ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash 在使用Docker创建了容器之后,大家比较 ...
- 如何进入Docker容器
概述 在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法. 进入Docker容器比较常见 ...
- linux安装nsenter工具,Docker 使用nsenter工具进入容器的操作
在使用Docker容器的时候,利用nsenter工具会比较方便,如果我们的系统没有的话,那就需要我们自己来安装了 1.首先访问该网址找到最新版本的nsenter工具 2.然后下载nsenter工具的源 ...
- 我如何进入Docker容器的shell?
本文翻译自:How do I get into a Docker container's shell? I'm getting started working with Docker. 我开始使用Do ...
- 使用nsenter进入docker namespace
我们知道docker容器使用namespace实现资源隔离. 我们知道,有很多image内部是没有bash的,所以我们docker exec是无法进入容器的,此时如果还想看一下容器内的情况,其实只需要 ...
最新文章
- 浅谈Java SE、Java EE、Java ME三者的区别
- android 保存textview,为什么没有TextView(带ID)会自动保存它的状态?
- You must install peer dependencies yourself
- 如何在两个目录中删除其中一个目录中同名文件
- 解决zabbix-agent二进制班不能连接使用docker搭建的zabbix-server
- Java设计模式GOF之6大设计原则
- 什么决定了电商双11大促的成败
- NATS服务器部署及测试
- 使用SoapUI调用不同的安全WCF SOAP服务-基本身份验证,第二部分
- (5):Silverlight 2 实现简单的拖放功能
- linux下打开、关闭tomcat,实时查看tomcat运行日志
- 获取程序下基目录下的文件的
- SQL SERVER数据库三种数据插入方式
- 期刊分类abcde_收藏!中文顶级期刊分类,多图教你不被ABCD类搞晕!
- iOS armv7, armv7s, arm64区别与应用32位、64位配置
- 信息检索与利用(第三版)第二章信息资源与信息源
- Solr Server服务器端安装配置
- IP-Guard十六个模块功能详解
- 程序员如何利用空闲时间挣零花钱
- 网易云音乐实时计算平台设计及实践
热门文章
- shell引入sql脚本报错_Oracle11g rac集群安装执行脚本报错的解决方法
- 拓端tecdat|共享汽车数据分析调研案例报告
- 使用cdn和npm引入的区别_带你体验 Vue2 和 Vue3 开发组件有什么区别
- 修改默认启动操作系统
- jbpm hibernate.cfg.xml 连接mysql配置_hibernate.cfg.xml文件连接mySql、Oracle、SqlServer配置...
- keras实现多层LSTM
- sklearn库的学习
- pyspark分类算法之决策树分类器模型实践【decisionTreeClassifier】
- Pandas常用函数diff和shift函数学习使用
- python 求解给定字符串中的最长DNA序列长度