Docker两种方式进入后台运行的容器详解架构师

1、在启动容器的时候,有时候我们加了参数-d,这时容器自动进入后台运行。如果我们要进入容器,该怎么办?通常使用docker attach命令和nsenter工具。

2、docker attach是Docker自带的命令。

$ docker run -idt centos 
$ docker ps 
$ docker attach 9b930d9d1e20 
$ docker attach cocky_carson

该命令有时候并不方便,因为他是同步的,若有多个用户attach到一个容器,一个窗口命令阻塞,其他窗口都无法执行。

3、nsenter命令:在util-linux包2.23版本后都有自带包含。nsenter可以访问另一个进程的名字空间。

是否安装nsenter,通过nsenter –version查看。

a.安装nsenter

$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz 
$ tar -zxvf util-linux-2.24.tar.gz 
$ cd util-linux-2.24 
$ ./configure --without-ncurses && make nsenter 
$ cp nsenter /usr/local/bin

b.通过nsenter命令进入容器

为了链接到容器,需要知道容器的PID,可以使用inspect获取,如:

docker inspect -f {{.State.Pid}} 5fbe4b029608 ##获取PID,5fbe4b029608为容器ID 
docker inspect 5fbe4b029608 ##查看该容器的详细信息

获取了PID之后,就可以通过下面的命令进入容器了

nsenter --target 31353 --mount --uts --ipc --net --pid ##31353为"docker inspect -f {{.State.Pid}} 5fbe4b029608"输出的结果

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/7068.html

(0)
上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐

发表回复

登录后才能评论