我正在尝试在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而不会出现问题。这是我到目前为止所做的事情,但似乎不必要地混乱。
我该怎么做才能让窗户正确绘制。
答案 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。