Ошибка докера: устройство ввода не является TTY. Если вы используете mintty, попробуйте префикс команды с помощью команды 'winpty'

После запуска этой программы  $ docker run --rm -v "/c/users/vipul rao/documents/github/wappalyzer:/opt/wappalyzer" -it wappalyzer/dev

Я получаю следующую ошибку the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty' Что я должен использовать здесь, я запускаю Windows 8 в MINGW64.

Ответ 1

Как следует из полученного сообщения об ошибке, вы должны попытаться использовать winpty (который устанавливается по умолчанию вместе с Git-Bash) и запустить:

winpty docker run --rm -v "/c/users/vipul rao/documents/github/wappalyzer:/opt/wappalyzer" -it wappalyzer/dev

Если это работает, вы можете установить псевдоним Bash, чтобы не winpty вручную:

echo "alias docker='winpty docker'" >> ~/.bashrc

или же

echo "alias docker='winpty docker'" >> ~/.bash_profile

Ответ 2

Эта проблема возникает при запуске с опцией -it с использованием терминала bash в окнах. Вы можете использовать Powershell для решения этой проблемы.

Ответ 3

Если вы используете Git Bash, вы можете попробовать вот так

winpty docker run -it ubuntu

Ответ 4

Вы запустили "Docker Quickstart Terminal"? Я пытался бежать

$ docker run -i -t redcricket/react-tutorial:latest /bin/bash

на Windows из оболочки Cygwin Bash и получил ту же ошибку:

the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'

Затем я вспомнил, что, когда я установил Docker в моей системе Windows 10, было установлено что-то под названием "Docker Quickstart Terminal". Вы должны начать это сначала с этого тупого окна "Напечатайте здесь, чтобы искать" вещь на панели задач:

enter image description here

Это запускает это...

enter image description here

… Вы можете запускать там свои команды docker без этой ошибки или запуска winpty.

Ответ 5

Удалите -it из команды. Если вы хотите сохранить его интерактивным, сохраните -i

Ответ 6

Возможно, вы не запускаете команды в терминале Docker. Если вы этого не сделаете, возможно, вы неправильно подключены к демону Docker и не сможете правильно взаимодействовать.

Убедитесь, что вы выполняете команды в реальном Docker Terminal.

Ответ 7

Вы можете попробовать с помощью инструмента Cmder, он будет работать. Это не работает с Gitbash

Ответ 8

В дополнение к вышеупомянутым решениям. В случае, если вы получаете эту ошибку для присоединения докера

пример: docker attach alpine1

ошибка: the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty' the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'

Решение: добавление winpty перед командой docker, т.е. winpty docker attach, должно работать.

пример: winpty docker attach alpine1

Примечание: я получал эту ошибку при использовании базы на Windows, и это решение работало для меня.

Ответ 9

Для тех, кто использует WSL и запускает Docker для окон внутри cmder или conemu, я бы рекомендовал не использовать Docker, который установлен на окнах в "Program Files", а вместо этого установить Docker внутри WSL на ubuntu/linux. Помните, однако, что вы не можете запустить сам Docker из WSL, вы должны подключиться к Docker, работающему в Windows, из клиента Linux Docker, установленного в WSL.

Чтобы установить Docker на WSL

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce

Возможны следующие варианты выполнения текущих команд Docker: Подключитесь к Docker с помощью переключателя -H

docker -H localhost:2375 run -it -v/mnt/c/code: /var/app -w "/var/app" centos:7

Или установите переменную окружения docker_host

export DOCKER_HOST=tcp://localhost:2375

В любом случае, теперь вы сможете интерактивно подключаться к работающему контейнеру Docker.