我正在尝试在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-256color it worked. Couldn't find any other $TERM that did that trick though (tried some like xterm-256color).



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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!