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.
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
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
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:
Que lanza esto…
… puede ejecutar los comandos de la ventana acoplable allí sin obtener ese error o ejecutar winpty.
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