基于两种创建docker镜像的启动容器时区别总结

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1.凡是用docker commit生成的镜像启动的时候可以加载一个启动自己应用的脚本,例如:

docker run  -d -P tomcat7.0b:jdk1.6 /run.sh

最后的/run.sh就是启动tomcat应用,表示启动该容器时顺便启动tomcat应用。否则只是启动了容器,并没有启动自己的应用。

run.sh内容如下:

#!/bin/bash
/usr/sbin/sshd -D &
exec ${CATALINA_HOME}/bin/catalina.sh run

而且注意,就是现在这个容器是基于Docfile文件生成的镜像实例化,如果你进行操作之后,然后使用docker commit来基于这个容器生成新镜像,那么基于新镜像生成的容器,还是一样要加载一个启动自己应用的脚步。

2.用Docfile文件生成的镜像时,来启动容器就不用再加这个脚本了

FROM sshd3:ubuntu
MAINTAINER waitfish from dockerpool.com([email protected])
ENV DEBIAN_FRONTEND noninteractive

RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata

RUN apt-get install -yq --no-install-recommends wget pwgen ca-certificates && apt-get clean && rm -rf /var/lib/apt/lists/*

ENV CATALINA_HOME /tomcat 

ENV JAVA_HOME /jdk

ADD apache-tomcat-7.0.69  /tomcat
ADD jdk1.6.0_45 /jdk

#ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh
ADD run.sh /run.sh

RUN chmod +x /*.sh
RUN chmod +x /tomcat/bin/*.sh

EXPOSE 8080
CMD ["/run.sh"]

因为最后一句CMD就是表示启动容器时,调用这个脚本。

转载于:https://my.oschina.net/u/1540325/blog/692509

你可能感兴趣的:(基于两种创建docker镜像的启动容器时区别总结)