如何获取/ etc / profile并将其保存在docker中?

时间:2015-07-04 04:08:26

标签: ubuntu docker

泊坞:Docker version 1.0.1, build 990021a

图片:ubuntu:14.04.2并命名为vl

我运行一个ubuntu映像并在/ etc / profile中写入:/usr/share/java/mysql.jar而不是源代码。

然后我提交了容器并再次运行它,但我仍然无法回显$ CLASSPATH。

结果是空白的。如何解决?谢谢。

这是我的流程

ubuntu@ip-xxx:~$ sudo docker run -it vl bash
root@04cfd1909a89:/# echo $CLASSPATH
                                                 <<--nothing
root@04cfd1909a89:/# source /etc/profile
root@04cfd1909a89:/# echo $CLASSPATH
:/usr/share/java/mysql.jar
root@04cfd1909a89:/# exit
exit
ubuntu@ip-xxx:~$ sudo docker commit -m="source /etc/profile" -a="changec" 04cfd1909a89 vl
bbb5599e6634ebe694d18fba46f355445f1aa8880b21c22e2d528c022ebf4f84
ubuntu@ip-10-184-10-187:~$ sudo docker run -it vl bash
root@519347159fa5:/# echo $CLASSPATH
                                                 <<--nothing again! why?
root@519347159fa5:/# exit

1 个答案:

答案 0 :(得分:0)

我非常确定提交容器只保存文件系统的状态,而环境变量是每个进程的属性。退出容器时,bash进程会死亡,其环境变量也随之消失。请在Dockerfile中使用此代码:

ENV CLASSPATH :/usr/share/java/mysql.jar