docker tty команда выполнить отображение - PullRequest
0 голосов
/ 06 мая 2020

Выполнить контейнер:

[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, в чем причина?

почему внешние хосты отображают команды, выполненные в контейнерах?

1 Ответ

0 голосов
/ 06 мая 2020

docker работает аналогично LX C. Это позволяет изолировать процессы друг от друга и контролировать распределение их ресурсов.

Поскольку ресурсы «разделены», система будет отображать информацию на основе того, что ей известно.

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

Для получения дополнительной информации проверьте Пространства имен ядра .

...