经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库运维 » LinuxShell » 查看文章
Docker之进入容器(三)
来源:cnblogs  作者:那一叶随风  时间:2018/11/15 10:16:53  对本文有异议

1、简介

  经过前面两篇博客的扫盲,大家多多少少对docker有了一个基本的了解,也接触了docker的常用命令。在这篇博客中,我将介绍进入docker容器的几种方式。

 

2、进入docker中的几种方式

  2.1、使用docker attach命令进入docker

  Docker提供了attach命令来进入Docker容器

  1. docker run -itd nginx-name mynginx
  2. docker attach mynginx
  3. # 或者
  4. docker attach mynginx

 

优缺点:
  当多个窗口使用该命令进入该容器时,所有窗口都会显示同步。如果一个窗口阻塞了,其他窗口无法再进行操作;。
  因此docker attach命令不太适合于生产环境。且该命令有点古老,不太建议使用

PS:

  最近在家里的windows系统中使用docker attach mynginx命令进入docker容器卡死窗口。可能该命令太古老了,高版本用有点问题。

  2.2、使用ssh进入docker容器

  dockerc之初识这一篇博客文章中,我们就了解到docker就是一个隔离的盒子,最原始初始化的盒子我们可以将它当做一个mini型的linux虚拟机,我们在该盒子中安装我们需要的服务(例如:nginx、mysql、redis等),打包之后就形成了目前最为流行的docker应用容器。既然是一个linux虚拟主机,那么我们就可以在该主机上面安装一个ssh server就可以通过ssh协议来连接该容器了。

  不过这种方式也基本没什么人用,出力不讨好。哈哈,那是因为后面有一种既安全又便捷的命令用啦。

  可以去看一下这个老外写的原因:为什么不需要在 Docker 容器中运行 sshd

  2.3、使用nsenter进入docker容器

  对于nsenter网上有比较多且详细的介绍,这里我就说一下我自己理解。

  个人理解nsenter:通过容器在宿主机中的pid进行通讯
  因此:nsenter需要在宿主机安装而非容器或者镜像

  1. # 安装nsenter
  2. $ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz
  3. $ tar -xzvf util-linux-2.24.tar.gz
  4. $ cd util-linux-2.24/
  5. $ ./configure --without-ncurses
  6. $ make nsenter
  7. $ sudo cp nsenter /usr/local/bin
  8. $ nsenter --help
  9. # nsenter可以访问另一个进程名称空间。因此我们需要获取容器的PID
  10. sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9 // 假设进程号为 4426
  11. $ sudo nsenter --target 4426 --mount --uts --ipc --net --pid
  12. # --target 4426 目标pid

  2.4、使用docker exec命令进入docker容器

  docker在1.3.x版本之后提供了一个新命令exec用户进入容器。  

  该命令是本篇博客中的主角,是个大boss。上面的三种方式都是为了衬托它的存在,郁闷脸。。。

  该方法是最常用的方法,没有之一!!!!!

  1. $ docker ps
  2. $ docker exec -it mynginx /bin/bash

  对,你没看错,这个命令就是这么简单。

  

 

(以上是自己的一些见解,若有不足或者错误的地方请各位指出)

 作者:那一叶随风   http://www.cnblogs.com/phpstudy2015-6/

 原文地址:  https://www.cnblogs.com/phpstudy2015-6/p/9961231.html 

 声明:本博客文章为原创,只代表本人在工作学习中某一时间内总结的观点或结论。转载时请在文章页面明显位置给出原文链接

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号