编写Dockerfile文件

镜像是容器的基础,容器基于镜像定义的内容来运行。镜像是多层存储,每一层是前一层基础上进行的修改。

定制镜像时,一般使用Dockerfile来完成。Dockerfile是一个文本文件,其内包含了一条条的指令,每一条指令构建镜像的其中一层,因此每一条指令的内容,就是描述该层应该如何构建。

Dockerfile文件编写与应用实际需求直接相关,每个应用所写的Dockerfile会有所区别,请根据业务实际需求来写Dockerfile文件。

FROM centos:7.1.1503  #表示此镜像以centos7.1.1503为基础镜像
RUN mkdir -p /usr/local/mongodb/data \
 && mkdir -p /usr/local/mongodb/bin \
 && mkdir -p /root/apache-tomcat-7.0.82 \
 && mkdir -p /root/jdk1.8.0_151   #创建文件夹,存放数据和依赖文件,建议多个命令写成一条,可减小镜像大小
COPY ./jdk1.8.0_151 /root/jdk1.8.0_151  #将jdk1.8.0_151目录下的文件拷贝到容器目录下
CPOY ./start_tomcat_and_mongo.sh /root/ #将start_tomcat_and_mongo.sh拷贝到容器/root/目录下

RUN chown root:root -R /root \
 && echo "JAVA_HOME=/root/jdk1.8.0_151" >>/etc/profile \
 && echo "PATH=\$JAVA_HOME/bin:$PATH" >>/etc/profile \
 && echo "CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar" >>/etc/profile \
 && chmod +x /root \
 && chmod +x /root/start_tomcat_and_mongo.sh  #注入JAVA环境变量

ENTRYPOINT ["/root/start_tomcat_and_mongo.sh"]   #容器启动的时候会自动运行里面的命令,可以一条可以多条,也可以是一个脚本

 

posted @ 2023-05-09 20:28  zhaoguanhao  阅读(95)  评论(0编辑  收藏  举报