泊坞: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
答案 0 :(得分:0)
我非常确定提交容器只保存文件系统的状态,而环境变量是每个进程的属性。退出容器时,bash
进程会死亡,其环境变量也随之消失。请在Dockerfile
中使用此代码:
ENV CLASSPATH :/usr/share/java/mysql.jar