互联网服务

Docker容器使用ENV命令设置的环境变量无法生效,如何处理?

在Dockerfile用ENV设置java环境变量,同时有安装sshd服务。

ENV JAVA_HOME /data/programs/jdk

ENV PATH $PATH:$JAVA_HOME/bin

ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

启动容器后,

使用docker exec -it 进入后java环境变量可以生效

$ java -version

java version "1.7.0_45"

Java(TM) SE Runtime Environment (build 1.7.0_45-b18)

Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

但是以ssh进去后,环境变量却无法生效

$ java

-bash: java: command not found

这是什么原因呢?

参与6

2 同行回答

dengya456 dengya456 系统运维工程师 yaya
[此回答已删除]
浏览4811
dl528888 dl528888 系统运维工程师 游戏公司
hi,你把变量放入到/etc/profile里试试显示全部

hi,你把变量放入到/etc/profile里试试

收起
互联网服务 · 2016-01-13
浏览17929
  • kinn  kinn
    测了一下, 设置ENV>>>docker exec 进去,环境变量生效 写入/etc/profile>>>ssh进去,环境变量生效
    2016-01-13

提问者

kinn
系统运维工程师 广州菲音信息科技有限公司
擅长领域: 容器引擎云计算容器云
评论4

问题状态

  • 发布时间:2016-01-12
  • 关注会员:3 人
  • 问题浏览:32988
  • 最近回答:2017-03-24
  • X社区推广