进入正在运行的Docker容器的4种方式
在使用Docker创建了容器之后,如何进入该容器呢?
进入Docker容器比较常见的几种做法如下:
- 使用docker attach
- 使用SSH
- 使用nsenter
- 使用exec
一、使用docker attach进入Docker容器
- Docker提供了attach命令来进入Docker容器。
接下来我们创建一个守护态的Docker容器,然后使用docker attach命令进入该容器。
$ sudo docker run -itd ubuntu:14.04 /bin/bash
然后我们使用docker ps查看到该容器信息,接下来就使用docker attach进入该容器
$ sudo docker attach 容器ID
但在,使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
因为这个原因,所以docker attach命令不太适合于生产环境,平时自己开发应用时可以使用该命令。
二、使用SSH进入Docker容器
在生产环境中排除了使用docker attach命令进入容器之后,相信大家第一个想到的就是ssh。在镜像(或容器)中安装SSH Server,这样就能保证多人进入
容器且相互之间不受干扰了,相信大家在当前的生产环境中(没有使用Docker的情况)也是这样做的。但是使用了Docker容器之后不建议使用ssh进入到Docker容
器内。关于为什么不建议使用,请参考如下文章:
三、使用nsenter进入Docker容器
在上面两种方式都不适合的情况下,还有一种比较方便的方法,即使用nsenter进入Docker容器。关于什么是nsenter请参考如下文章:
https://github.com/jpetazzo/nsenter
在了解了什么是nsenter之后,系统默认将我们需要的nsenter安装到主机中
如果没有安装的话,按下面步骤安装即可(注意是主机而非容器或镜像)
具体的安装命令如下:
1. $ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz 2. $ tar -xzvf util-linux-2.24.tar.gz 3. $ cd util-linux-2.24/ 4. $ ./configure --without-ncurses 5. $ make nsenter 6. $ sudo cp nsenter /usr/local/bin
安装好nsenter之后可以查看一下该命令的使用。
nsenter --help
nsenter可以访问另一个进程的名称空间。所以为了连接到某个容器我们还需要获取该容器的第一个进程的PID。可以使用docker inspect命令来拿到该PID。
docker inspect命令使用如下:
$ sudo docker inspect --help
inspect命令可以分层级显示一个镜像或容器的信息。比如我们当前有一个正在运行的容器
sudo docker ps
可以使用docker inspect来查看该容器的详细信息。
$ sudo docker inspect 44fc0f0582d9
由其该信息非常多,此处只截取了其中一部分进行展示。如果要显示该容器第一个进行的PID可以使用如下方式
$ sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9
在拿到该进程PID之后我们就可以使用nsenter命令访问该容器了。
$ sudo nsenter --target 3326 --mount --uts --ipc --net --pid
其中的3326即刚才拿到的进程的PID
当然,如果你认为每次都输入那么多参数太麻烦的话,网上也有许多做好的脚本供大家使用。
地址如下:
http://yeasy.gitbooks.io/docker_practice/content/container/enter.html
http://www.tuicool.com/articles/eYnUBrR
四、使用docker exec进入Docker容器**
除了上面几种做法之外,docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些,下面我们来看一下该命令的使用:
$ sudo docker exec --help
接下来我们使用该命令进入一个已经在运行的容器
1. $ sudo docker ps 2. $ sudo docker exec -it 775c7c9ee1e1 /bin/bash
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
为什么说“上云就上阿里云”
云服务器又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品。近年来,越来越热的云计算被推倒风口浪尖,各大中型企业纷纷把企业服务迁移到云上,众多的创业公司也把云服务器作为数据服务的首选。上云隐隐的成为了大家的一种默契,使用传统服务器早就成为了例外。其实云计算并没有想象中的那样“高大上”,今天阿里云河南来为大家捋一捋企业在上云的时候要考虑哪些,只有清楚为什么上云,用什么云,怎么上云等问题,才能发挥云计算带来的巨大作用。首先企业为什么上云,换言之就是企业上云有什么好处。 第一,云服务器的成本比较低。传统的服务器是用户租用或购买的形式,由于服务商在前期投入比较多,为了较快的回收资金,服务商就要求用户一次性交完费用,这个一次性一般是以一定的其限期为标准,比如一年。但是,云服务器却是用户使用了多少就交多少的费用,按需收费,传统的服务器是包干价,一次性交完钱后,你可以随意的使用资源。 第二,云服务器的性能要比传统服务器优越。云服务器实现了硬件上的隔离以及宽带上的独享,但是传统服务器就不能达到这点,它还是会受到地域,流量等的限制,很难获得可持续的产品性能。 第三,云服务器拥有更强大的管理能力...
- 下一篇
Sysdig Falco:你不可不知的Docker安全监控利器
入侵检测和漏洞扫描可谓是主动发现安全问题的“内功外功”,在容器技术应用越来越广泛的今天,也需要被给予同样的重视。本文将探讨Docker入侵检测工具Sysdig Falco的基础知识以及如何检测容器的异常行为等问题。 Sysdig Falco是一种旨在检测异常活动开源的系统行为监控程序。作为Linux主机入侵检测系统,对Docker依旧特别有用,因为它支持容器上下文,如container.id、container.image或其规则的命名空间。 虽然说Sysdig Falco是一种审计工具,却与Seccomp或AppArmor等内核态的审计工具全然不同。Sysdig Falco在用户空间中运行,使用内核模块拦截系统调用,而其他类似工具在内核级别运行系统调用过滤或监控。用户空间实现的一个好处是能够与Docker编排工具等外部系统集成。 本文将从以下4个安全威胁场景展示如何使用Sysdig Falco进行异常行为监控: ●运行交互式Shell的容器; ●运行未经授权的进程; ●写入非用户数据目录; ●容器异常挂载。 读者将同时扮演攻击者和防御者(系统管理员)角色,验证Sysdig Falco...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Mario游戏-低调大师作品
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案