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

示例图片:

在此处输入图像描述在此处输入图像描述

docker容器在pts/3中运行,在容器"sleep 20"中执行命令。然后,我在外部主机上执行命令"w",显示命令"sleep 20"在pts/0中执行,原因是什么?

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

docker类似于LXC的工作方式。它允许对进程进行沙盒处理,并控制它们的资源分配。

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

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

有关详细信息,请查看内核命名空间。

最新更新