Docker容器的多应用开机启动

来源:互联网 发布:信封袋设计的软件 编辑:程序博客网 时间:2024/06/06 02:56

原文地址:http://blog.csdn.net/nisxiya/article/details/42964901

在普通的Ubuntu系统中,只需要将自己需要开机启动的脚本写在 /etc/rc.local 中,即可实现开机自启动。但是在Docker中,则完全不是这样,那么应该如何实现开机启动多个应用程序呢?默认地,docker中Ubuntu会启动/bin/bash。


我设置rc.local后,具体内容如下,以供大家参考:

/etc/rc.local

[cpp] view plain copy
  1. /etc/init.d/ssh start  
  2. /root/wsdc_project/auto_start.sh  
  3.   
  4.   
  5. # set java class path  
  6. export JAVA_HOME=/root/wsdc_project/resources/jdk1.7.0  
  7. export JRE_HOME=${JAVA_HOME}/jre  
  8. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
  9. export PATH=${JAVA_HOME}/bin:${PATH}  
  10.   
  11. /bin/bash  
  12.   
  13. exit 0  

note1: 由于ssh不会自启动,所以我把该命令写在 rc.local 中;

note2: 我启动应用的所有脚本都放置在 /root/wsdc_project_auto_start.sh 中了

note3: 如果是通过docker进去容器的时候,不会自动加载/etc/profile,因此我在其中设置的Java环境就得不到执行,因此我将export java环境的语句写在了/etc/rc.local了。

note4: 一定需要注意的是,要将/bin/bash放置于最后,因为通过docker容器进去的时候,是要执行到/bin/bash,然后我们才可以进去,/bin/bash语句之后的只有当我们exit的时候,才会被执行到。