linux - docker tty 命令执行显示
问题描述
运行容器:
[root@localhost ~]# tty
/dev/pts/3
[root@localhost ~]# docker run -it nginx /bin/bash
root@bee12031f933:/# sleep 20
root@bee12031f933:/#
看:
[root@localhost ~]# tty
/dev/pts/2
[root@localhost ~]# w
17:43:24 up 19 days, 45 min, 5 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.22 16:24 1:01m 0.73s 0.00s sleep 20
root pts/1 192.168.1.22 11:31 1:02m 4.92s 4.65s docker run -it centos:7.7.1908
root pts/2 192.168.1.22 16:31 4.00s 0.70s 0.01s w
root pts/3 192.168.1.22 15:09 4.00s 0.25s 0.07s docker run -it nginx /bin/bash
root pts/4 192.168.1.22 16:41 44.00s 0.06s 0.06s -bash
示例图片:
在 pts/3 中运行的 docker 容器,在容器“sleep 20”中执行命令。然后,我在外部主机上执行命令“w”,在pts/0执行显示命令“sleep 20”,这是什么原因?
为什么外部主机显示在容器中执行的命令?
解决方案
docker 类似于 LXC 的工作方式。它允许将进程相互沙盒化,并控制它们的资源分配。
由于资源是“分离的”,系统将根据它所知道的信息显示信息。
myuser@localhost: ~ $ tty
/dev/pts/1
myuser@localhost: ~ $ docker run --rm -it ubuntu:18.04 bash
root@36ed505961f4:/# tty
/dev/pts/0
检查内核命名空间以获取更多信息。
推荐阅读
- scala - 在 apache flink 中拆分和加入流
- php - PhpStorm:使用换行符自动格式化
- python - 应用服务器启动后运行一次 python 脚本 - Django,Docker-Compose
- loops - How do I iterate through an array of hashes in puppet 3.8?
- activiti - Activiti BPMN 中的异常,java.lang.NoSuchFieldError: orthConnector
- jsf - 如何从 bean 显示 p:confirmDialog?
- php - PHP: extract unknown string delimited by known strings from another string
- javascript - 为什么除法在javascript中产生更多十进制值的结果
- java - aes gcm加解密的互通性
- twilio - 自动驾驶任务中使用的 Twilio 功能应发送 SMS 但返回“发生应用程序错误”