如何在docker中运行的tmux中正确显示竖条?

时间:2015-12-26 04:54:05

标签: ssh docker tmux

我正在尝试在docker中使用tmux。在大多数情况下它工作正常,但如果我将主窗口拆分为左右窗口,则tmux应在两个窗口之间绘制的条形图仅部分绘制。还有一些其他窗口渲染问题,但这是我注意到并且最容易描述的第一个。

这是我用来构建测试图像的Dockerfile:

FROM ubuntu:wily

RUN apt-get update && apt-get install -y tmux 

这是我用tmux启动docker的命令:

sudo docker run -it --entrypoint tmux imageName

我的主机正在运行Ubuntu 15.04,我正在使用TERM = xterm的终端运行docker。在docker容器内,TERM = screen

如果我启动sshd而不是tmux,那么我可以使用ssh登录正在运行的容器,并在ssh会话中使用tmux而不会出现问题。这是我到目前为止所做的事情,但似乎不必要地混乱。

我该怎么做才能让窗户正确绘制。

1 个答案:

答案 0 :(得分:4)

tmux项目存在类似问题(issue 224)

那里的解决方案是:

set -ag terminal-overrides ',*:cud1=\E[1B'

.tmux.conf文件中添加(例如〜/ .tmux.conf)。

您还有docker/issues/8755,这与运行tmux会话时的正确tty有关。

docker exec -ti $CONTAINER_NAME tty
not a tty
  

再次,解决方法:

docker exec -ti $CONTAINER_NAME script -qc 'tty' /dev/null
/dev/pts/0

最后,issue 5379提及:

  

将env var设置为screen-256color它有效。无法找到任何其他$TERM做过那种技巧(尝试过xterm-256color)。

这意味着使用-e TERM=screen-256color选项运行docker run。