TERM环境variables未在Google Compute Engine上使用Docker进行设置

我在Google Compute Engine上使用Docker(使用container-vm映像)。 当我尝试运行时:

# docker exec mycontainer top 

我得到:

 TERM environment variable not set. 

但是,术语variables似乎正确设置:

 # docker exec mycontainer echo $TERM xterm-256color 

您正在评估本地TERMvariables,而不是容器中的variables。 例如:

  X=bla && docker run debian echo $X bla 

你可以使用单引号:

 X=bla && docker run debian sh -c 'echo $X' 

当然, env也会告诉你什么是设置:

 $ docker run debian env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=3737f39f89b3 HOME=/root 

我相信只有在使用-t标志启动容器时才会自动设置TERMvariables,但是可以手动设置:

 $ docker run -t debian env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=0bf3eef92d94 TERM=xterm HOME=/root