术语环境变量未在Google Compute Engine上与Docker一起设置

术语环境变量未在Google Compute Engine上与Docker一起设置,docker,google-compute-engine,Docker,Google Compute Engine,我正在谷歌计算引擎上使用Docker(带有容器vm映像)。当我尝试跑步时: # docker exec mycontainer top 我得到: TERM environment variable not set. 但是,术语变量似乎设置正确: # docker exec mycontainer echo $TERM xterm-256color 您正在计算本地项变量,而不是容器中的变量。例如: X=bla && docker run debian echo $X bl

我正在谷歌计算引擎上使用Docker(带有容器vm映像)。当我尝试跑步时:

# docker exec mycontainer top
我得到:

TERM environment variable not set.
但是,术语变量似乎设置正确:

# docker exec mycontainer echo $TERM
xterm-256color

您正在计算本地
变量,而不是容器中的变量。例如:

 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
标志启动时,
术语
变量才会自动设置,但您可以手动设置:

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

你是对的。使用-t运行时,将设置$TERM env变量。