我正在尝试在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 session 中使用tmux不会出现问题。到目前为止,这是我一直在做的事情,但看起来似乎不必要。
我该怎么做才能正确绘制窗口。
请您参考如下方法:
tmux项目(issue 224)
那里的解决方案是:
set -ag terminal-overrides ',*:cud1=\E[1B'
已添加到
.tmux.conf文件中(例如〜/ .tmux.conf)。
您还拥有 docker/issues/8755,它与运行tmux session 时拥有的适当tty有关。
docker exec -ti $CONTAINER_NAME tty
not a tty
And again, the workaround:
docker exec -ti $CONTAINER_NAME script -qc 'tty' /dev/null
/dev/pts/0
最后, issue 5379提到:
with the env var set to
screen-256colorit worked. Couldn't find any other$TERMthat did that trick though (tried some likexterm-256color).
这意味着使用
-e TERM=screen-256color选项运行docker run。




