Docker-Fehler unter Windows: Das Eingabegerät ist kein TTY. Wenn Sie mintty verwenden, versuchen Sie, dem Befehl „winpty“ voranzustellen. [duplicate]

Lesezeit: 5 Minuten

Benutzeravatar von Vipul Rao
Vipul Rao

Nachdem ich das ausgeführt habe
$ docker run --rm -v "/c/users/vipul rao/documents/github/wappalyzer:/opt/wappalyzer" -it wappalyzer/dev

Ich erhalte den folgenden Fehler

das Eingabegerät ist kein TTY. Wenn Sie mintty verwenden, versuchen Sie, dem Befehl „winpty“ voranzustellen.

Was soll ich hier verwenden? Ich verwende Docker unter Windows 8 in MINGW64.

  • Ich verwende MobaXterm und bekomme das gleiche Problem. Ändern Sie einfach die Shell-Option in cmd oder Powershell könnte das Problem ebenfalls beheben.

    – Dylan

    7. Mai 2019 um 7:19 Uhr

  • Ja, wenn ich unter Windows von Git-Bash zu Power-Shell wechsle, funktioniert es wie am Schnürchen. Danke

    – Krishna

    22. Oktober 2020 um 18:34 Uhr

  • Verwenden Sie einfach dieses “winpty docker exec -it c440b946173d redis-cli”

    – Hrishikesh Baidya

    15. April 2021 um 15:21 Uhr

Wie in der Fehlermeldung vorgeschlagen, die Sie erhalten, sollten Sie versuchen, zu verwenden winzig (das standardmäßig mit Git-Bash installiert wird) und somit ausführen:

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

Wenn dies funktioniert, möchten Sie möglicherweise einen Bash-Alias ​​festlegen, um ein manuelles Voranstellen zu vermeiden winpty die ganze Zeit:

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

oder

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

  • Ihr Vorschlag, einen Alias ​​zu erstellen, hat perfekt funktioniert – vielen Dank.

    – Novocain

    18. Februar 2019 um 14:26 Uhr

  • Cygwin: Kommt nicht gebündelt aus der Box, sondern ein Git-Klon des Repos und des Standards ./configure && make && make install stellt es auch dort zur Verfügung

    – Zoe steht mit der Ukraine

    4. April 2019 um 17:48 Uhr

  • das funktioniert, aber Rohre brechen, überprüfen Sie die Antwort von @cesarpino unten.

    – rnrneverdies

    10. August 2020 um 12:18 Uhr

  • Gold! gute Antwort

    – Herrzik

    8. Oktober 2020 um 3:28 Uhr

  • Schön funktioniert super

    – Emmanuel Njorodongo

    16. Juli 2021 um 13:14 Uhr

Wenn Sie Git Bash verwenden, können Sie es so versuchen

winpty docker run -it ubuntu

Benutzeravatar von yamenk
Jamenk

Dieses Problem tritt auf, wenn mit ausgeführt wird -it Option mit dem Bash-Terminal unter Windows. Sie können Powershell verwenden, um dieses Problem zu beheben.

  • Kann die Erklärung hinzufügen, warum?

    – Tarun Lalwani

    5. Februar 2018 um 13:16 Uhr

  • Dies ist der Fehler, den ich nach der Verwendung von Powershell erhalte $ 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. Februar 2018 um 4:15 Uhr


  • Sie müssen die Shell mit dem Docker-Daemon verbinden, indem Sie die env-Variablen aus dem Befehl festlegen docker-machine env default. Sie können auch das Docker-Schnellstartterminal verwenden, das mit dem Docker-Daemon verbunden ist.

    – Jamenk

    6. Februar 2018 um 8:30 Uhr

  • Die Powershell hat mein Problem behoben

    – Wesley Abbenhuis

    7. August 2018 um 13:49 Uhr

  • Ich verwende Powershell und erhalte immer noch diesen Fehler. Ich weiß nicht einmal, was winpty, mintty oder git-bash ist. Git verwende ich nicht. Entfernen -it löst das nicht.

    – Wasserspeier

    21. April um 5:43 Uhr


Das funktioniert für mich. Ich verwende Git Bash unter Windows

winpty docker-compose exec app ls -l

Entfernen -it aus dem Befehl. Wenn Sie es interaktiv halten möchten, dann behalten Sie es bei -i

  • OK, aber das löst das Problem nicht, es vermeidet es nur 🙂

    – ErikMD

    29. April 2018 um 20:09 Uhr

  • Es vermeidet es nicht einmal. Ich entfernte -it aber ich bekomme immer noch den Fehler, nativ in Powershell ausgeführt zu werden, kein Wintty, kein Mintty, kein Git-Bash irgendwo im System (idek, was diese Dinge sind).

    – Wasserspeier

    21. April um 5:47 Uhr

Nicht verwenden alias docker="winpty docker". Es löst Ihr Problem, aber Rohre brechen.

$ winpty docker run -ti ubuntu
[email protected]:/# exit

$ wintpy docker run ubuntu bash HELLO 
HELLO

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

Kopieren Sie dies in Ihre .bashrc. Dieses Skript verwendet winpty docker nur wenn -ti wird genutzt.

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

docker run -ti ubuntu wird winpty docker run -ti ubuntu vermeidet 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 wird command docker run echo "what'up" | cat vermeidet error: stdout is not a tty

Das Skript sucht nur, ob es einen ‘-it’-Parameter gibt, ohne zu prüfen, ob er sich in einem ‘docker run’-Satz befindet … aber für meine Zwecke reicht es aus.

  • OK, aber das löst das Problem nicht, es vermeidet es nur 🙂

    – ErikMD

    29. April 2018 um 20:09 Uhr

  • Es vermeidet es nicht einmal. Ich entfernte -it aber ich bekomme immer noch den Fehler, nativ in Powershell ausgeführt zu werden, kein Wintty, kein Mintty, kein Git-Bash irgendwo im System (idek, was diese Dinge sind).

    – Wasserspeier

    21. April um 5:47 Uhr

Benutzeravatar von Red Cricket
Rote Grille

Haben Sie “Docker Quickstart Terminal” gestartet? Ich versuchte zu rennen

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

unter Windows von einer Cygwin-Bash-Shell und bekam den gleichen Fehler:

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

Dann erinnerte ich mich, dass bei der Installation von Docker auf meinem Windows 10-System etwas namens “Docker Quickstart Terminal” installiert wurde. Sie müssen das zuerst von diesem dummen Windows-Ding “Hier eingeben, um zu suchen” in der Taskleiste starten:

Geben Sie hier die Bildbeschreibung ein

Das startet diese …

Geben Sie hier die Bildbeschreibung ein

… Sie können Ihre Docker-Befehle dort ausführen, ohne diesen Fehler zu erhalten oder winpty auszuführen.

1429840cookie-checkDocker-Fehler unter Windows: Das Eingabegerät ist kein TTY. Wenn Sie mintty verwenden, versuchen Sie, dem Befehl „winpty“ voranzustellen. [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy