Zdjąć -it
z CLI, aby go non interaktywne i usunąć TTY. Jeśli nie potrzebujesz, np. wykonując swoją komendę w skrypcie Jenkinsa lub crona, powinieneś to zrobić.
Lub możesz zmienić to na -i
, jeśli masz wejście wyprowadzone do polecenia dokowania, które nie pochodzi z TTY. Jeśli masz coś w rodzaju linii poleceń: xyz | docker ...
lub docker ... <input
, zrób to.
Lub możesz zmienić to na -t
, jeśli chcesz obsługiwać TTY, ale nie masz jej w urządzeniu wejściowym. Zrób to dla kolorowego formatowania danych wyjściowych w dziennikach lub dla późniejszego dołączenia do kontenera za pomocą właściwego terminala.
Jeśli potrzebujesz interaktywnego terminala i nie działa on w terminalu w systemie Linux lub MacOS, użyj innego interfejsu wiersza poleceń. Program PowerShell informuje o włączeniu tej obsługi w systemie Windows.
Co to jest TTY? Jest to interfejs terminalowy obsługujący wydruki kolorowe, sekwencje specjalne, przesuwanie kursora itp., Który pochodzi z dawnych terminali podłączonych do komputerów typu mainframe. Dzisiaj jest on dostarczany przez terminale poleceń systemu Linux i interfejsy ssh. Zobacz wikipedia article for more details.
Możliwym duplikatem [sposobu obejścia "urządzenia wejściowego nie jest TTY" podczas korzystania z pomijania w celu wywołania skryptu wywołującego działanie dockera?] (Http://stackoverflow.com/questions/40536778/how-to -work-input-device-is-not-a-tty-when-using-chrab-shell-to-invo) – BMitch