Похоже, что в вашей ОС отсутствуют псевдотерминалы (PTY) - устройство, которое фактически выполняет функции физического терминала.
Файл / dev / ptmx - это символьный файл с основным номером 5 и вторым номером 2, обычно в режиме 0666 и владельцем. Группа root.root.Используется для создания псевдотерминальной главной и подчиненной пары.
FILES
- / dev / ptmx - мастер-клон UNIX 98
- / dev / pts/ * - подчиненные устройства UNIX 98
- / dev / pty [p-za-e] [0-9a-f] - ведущие устройства BSD
- / dev / tty [p-za-e] [0-9a-f] - ведомые устройства BSD
Ссылка: http://man7.org/linux/man-pages/man7/pty.7.html
Это по умолчанию включено в ядро Linux.Возможно, его отсутствие как-то связано с архитектурой вашей ОС.Кроме того, я не уверен, как вы можете это исправить, возможно попробуйте обновить && обновить ОС.
Быстрый обходной путь, если вам не нужен tty, будет пропускать флаг -t
:
docker run -i ubuntu bash
В docker run -it
, -i/--interactive
означает «держать стандартный ввод открытым», а -t/--tty
означает «сообщить контейнеру, что стандартный ввод псевдотерминала».Ключевым здесь является слово «интерактивный».Если вы опустите флаг, контейнер все равно выполнит /bin/bash
, но завершится немедленно.С флагом флаг выполняет /bin/bash
, затем терпеливо ждет вашего ввода.Это означает, что теперь у вас будет сеанс bash внутри контейнера, так что вы можете ls
, mkdir
или выполнить любую команду bash внутри контейнера.