Docker - 终端交互
进入容器交互终端
使用docker attach
命令进入容器交互终端。
注意:如果多个窗口同时attach到同一个容器,那么所有窗口都会同步显示。如果某个窗口因命令阻塞时,那么其他窗口将无法执行操作。
[root@CentOS-7 ~]# docker images ubuntu
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu latest 6a2f32de169d 13 days ago 117.2 MB
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker run --name test -idt ubuntu
6a0e7b067fe3122ad23b34d84653ca0872cda44efff903198f41e76e017e4a26
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a0e7b067fe3 ubuntu "/bin/bash" 7 seconds ago Up 7 seconds test
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker attach test
root@6a0e7b067fe3:/#
root@6a0e7b067fe3:/# exit
exit
[root@CentOS-7 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@CentOS-7 ~]#
退出容器交互终端
通过Ctrl-p和Ctrl-q键,可以退出正在交互的容器终端,此时容器不会终止。
特别注意:通过exit命令或Ctrl+d键来退出容器终端时,所创建的容器立刻终止。
[root@CentOS-7 ~]# docker run --name test -it ubuntu bash
root@a445204315f3:/#
root@a445204315f3:/# # 先后按Ctrl-p和Ctrl-q键
[root@CentOS-7 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a445204315f3 ubuntu "bash" 36 seconds ago Up 34 seconds test
[root@CentOS-7 ~]#
使用nsenter工具进入容器交互终端
nsenter启动一个新的shell进程(默认是/bin/bash), 同时会把这个新进程切换到和目标(target)进程相同的命名空间,相当于进入了容器内部。
nsenter包含在util-linux 2.23版本之后,而且运行需要root权限。
特别注意:通过exit命令或Ctrl+d键来退出容器终端时,所创建的容器不会终止。
[root@CentOS-7 ~]# rpm -qa |grep util-linux
util-linux-2.23.2-26.el7.x86_64
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a445204315f3 ubuntu "bash" 2 hours ago Up 2 hours test
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# PID=$(docker inspect --format "{{ .State.Pid }}" test)
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# nsenter --target $PID --uts --ipc --net --pid
[root@a445204315f3 ~]#
[root@a445204315f3 ~]# exit
logout
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a445204315f3 ubuntu "bash" 2 hours ago Up 2 hours test
[root@CentOS-7 ~]#
行动是绝望的解药!
欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!
以所舍,求所得,有所获,方所成。