error de docker en Windows: el dispositivo de entrada no es un TTY. Si está usando mintty, intente prefijar el comando con ‘winpty’ [duplicate]

5 minutos de lectura

Avatar de usuario de Vipul Rao
Vipul Rao

Después de ejecutar esto
$ docker run --rm -v "/c/users/vipul rao/documents/github/wappalyzer:/opt/wappalyzer" -it wappalyzer/dev

Estoy teniendo el siguiente error

el dispositivo de entrada no es un TTY. Si está usando mintty, intente prefijar el comando con ‘winpty’

¿Qué debo usar aquí? Estoy ejecutando Docker en Windows 8 en MINGW64.

  • Estoy usando MobaXterm y tengo el mismo problema. Simplemente cambie la opción de shell a cmd o powershell también podría solucionar el problema.

    – Dylan

    7 de mayo de 2019 a las 7:19

  • Sí, cuando cambio de git-bash a power-shell en Windows, funciona de maravilla. Gracias.

    – Krsna

    22 oct 2020 a las 18:34

  • use simple este “winpty docker exec -it c440b946173d redis-cli”

    – Hrishikesh Baidya

    15 de abril de 2021 a las 15:21

Como sugiere el mensaje de error que obtiene, debe intentar usar winpty (que viene instalado por defecto con Git-Bash) y así ejecutar:

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

Si esto funciona, es posible que desee establecer un alias de Bash para evitar anteponer manualmente winpty todo el tiempo:

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

o

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

  • su sugerencia de crear un alias funcionó perfectamente, muchas gracias.

    – Novocaína

    18 de febrero de 2019 a las 14:26

  • Cygwin: no viene incluido en la caja, sino un clon de git del repositorio y el estándar ./configure && make && make install lo hace disponible allí también

    – Zoe apoya a Ucrania

    4 de abril de 2019 a las 17:48

  • esto funciona pero rompe tuberías, consulte la respuesta de @cesarpino a continuación.

    – rnrneverdies

    10 de agosto de 2020 a las 12:18

  • ¡Oro! gran respuesta

    – misterzik

    8 de octubre de 2020 a las 3:28

  • agradable funciona muy bien

    – Emmanuel Njorondongo

    16 de julio de 2021 a las 13:14

Si está utilizando Git Bash, puede probar así

winpty docker run -it ubuntu

avatar de usuario de yamenk
yamenk

Este problema ocurre cuando se ejecuta con -it opción usando bash terminal en windows. Puede usar Powershell para resolver este problema.

  • ¿Puede agregar la explicación de por qué?

    – Tarun Lalwani

    5 de febrero de 2018 a las 13:16

  • Este es el error que recibo después de usar powershell $ docker run --rm -v "/c/users/vipul rao/documents/github/wappalyzer:/opt/wappalyzer" -it wappalyzer/dev C:\Program Files\Docker Toolbox\docker.exe: error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.35/containers/create: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running. See 'C:\Program Files\Docker Toolbox\docker.exe run --help'.

    – Vipul Rao

    6 de febrero de 2018 a las 4:15


  • Debe conectar el shell al deamon docker configurando las variables env desde el comando docker-machine env default. También puede usar el terminal de inicio rápido de Docker que está conectado al deamon de Docker.

    – yamenk

    6 de febrero de 2018 a las 8:30

  • El Powershell solucionó mi problema

    – Wesley Abbenhuis

    7 de agosto de 2018 a las 13:49

  • Estoy usando Powershell y sigo recibiendo este error. Ni siquiera sé qué es winpty, mintty o git-bash. No uso git. eliminando -it no resuelve esto.

    – gárgolabident

    21 abr a las 5:43


Esto funciona para mí. estoy usando git bash en windows

winpty docker-compose exec app ls -l

Remover -it del comando. Si desea mantenerlo interactivo, mantenga -i

  • Está bien, pero esto no resuelve el problema, solo lo evita 🙂

    – Erik MD

    29 de abril de 2018 a las 20:09

  • Ni siquiera lo evita. quite -it pero sigo recibiendo el error, se ejecuta de forma nativa en Powershell, no wintty, no mintty no Git-Bash en ninguna parte del sistema (idek cuáles son esas cosas).

    – gárgolabident

    21 abr a las 5:47

no usar alias docker="winpty docker". Resuelve tu problema pero rompe tuberías.

$ winpty docker run -ti ubuntu
root@e85cff7d1670:/# exit

$ wintpy docker run ubuntu bash HELLO 
HELLO

$ wintpy docker run ubuntu bash HELLO | cat
stdout is not a tty

Copie esto en su .bashrc. Este guión utiliza winpty docker sólo si -ti se usa

function docker(){
  for param; do if [[ "$param" == "-ti" ]] || [[ "$param" == "-it" ]]; then 
    winpty docker "$@"; return
  fi; done; 
  command docker "$@"
}

docker run -ti ubuntu se convierte winpty docker run -ti ubuntu evita error: the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'"

docker run ubuntu echo "what's up" | cat se convierte command docker run echo "what'up" | cat evita error: stdout is not a tty

El script solo mira si hay un parámetro ‘-it’ sin verificar si está dentro de una oración ‘docker run’ … pero funciona para mis usos.

  • Está bien, pero esto no resuelve el problema, solo lo evita 🙂

    – Erik MD

    29 de abril de 2018 a las 20:09

  • Ni siquiera lo evita. quite -it pero sigo recibiendo el error, se ejecuta de forma nativa en Powershell, no wintty, no mintty no Git-Bash en ninguna parte del sistema (idek cuáles son esas cosas).

    – gárgolabident

    21 abr a las 5:47

Avatar de usuario de Red Cricket
grillo rojo

¿Iniciaste “Terminal de inicio rápido de Docker”? yo estaba tratando de correr

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

en Windows desde un shell bash de Cygwin y obtuve el mismo error:

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

Luego recordé que cuando instalé Docker en mi sistema Windows 10, se instaló algo llamado “Terminal de inicio rápido de Docker”. Primero debe comenzar desde esa ventana tonta ‘Escriba aquí para buscar’ en la barra de tareas:

ingrese la descripción de la imagen aquí

Que lanza esto…

ingrese la descripción de la imagen aquí

… puede ejecutar los comandos de la ventana acoplable allí sin obtener ese error o ejecutar winpty.

¿Ha sido útil esta solución?