首页 > 解决方案 > 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”,这是什么原因?

为什么外部主机显示在容器中执行的命令?

标签: linuxdockercentos

解决方案


docker 类似于 LXC 的工作方式。它允许将进程相互沙盒化,并控制它们的资源分配。

由于资源是“分离的”,系统将根据它所知道的信息显示信息。

myuser@localhost: ~ $ tty
/dev/pts/1
myuser@localhost: ~ $ docker run --rm -it ubuntu:18.04 bash
root@36ed505961f4:/# tty
/dev/pts/0

检查内核命名空间以获取更多信息。


推荐阅读