【发布时间】:2016-03-17 10:57:45
【问题描述】:
我有一个依赖于终端特性的实用程序。我想在 docker 容器中执行它。 (该程序本身不是交互式程序。它是一个以这种方式编写的旧程序)。
docker run -i -t 或 docker exec -i -t 应该在容器中打开一个 tty。但这就是发生的事情..
user@1755e1f3f735:~/region/primer/cobol_v> kickstop
[Error] Unable to run without terminal device (tty)
user@1755e1f3f735:~/region/primer/cobol_v> tty
not a tty
当 docker 命令 (run/exec) 的 -t 选项应该给出“tty”时,tty 命令返回“not a tty”。这令人费解。
我在 openSuse 和 fedora23 主机和映像上遇到过这种情况,如果这很重要的话。为此,我使用了“guake”、MATE(Gnome?)终端仿真器,结果相同。
有什么解决办法吗?还是这是设计使然,必须替换/重写我的实用程序?
【问题讨论】:
-
您可以在容器内发布
echo $TERM吗? -
@user2915097:你的问题让我做了一些实验。我已经“回答”了我自己的问题。谢谢。