Dockerfile是一个文本文件,包含了镜像构建的所有命令,通过修改Dockerfile中的命令,就能定制化自己想要的镜像。Dockerfile里面每一个指令都会构建一层镜像,层层叠加最终得到定制化镜像。
下面我以制作一个基于centos的jdk+tomcat镜像为例:
首先,创建一个名为Dockerfile的文件,并输入以下内容:
vim Dockerfile;
# 指定操作的镜像
FROM centos:7
# 维护者信息
MAINTAINER chen-wei-bin
# 将 jdk 和 tomcat 添加到镜像centos的/usr/local/目录下
ADD jdk-8u241-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.0.50.tar.gz /usr/local/
# 添加环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_241
ENV CLASSPATH $JAVA_HOME/lib;$JAVA_HOME/jre/lib
ENV PATH $PATH:$JAVA_HOME/bin
ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.50
ENV CATALINA_BASE $CATALINA_HOME
ENV PATH $PATH:$CATALINA_HOME/lib:$CATALINA_HOME/bin
ENV TZ="Asia/Shanghai"
# 暴露8080端口
EXPOSE 8080
# 容器启动时运行tomcat
CMD /usr/local/apache-tomcat-8.0.50/bin/catalina.sh run
然后保存退出,在执行build命令创建镜像:
docker build -t tomcat-8.0.50:v1 . //tomcat-8.0.50为要生成的镜像名称,v1为版本号,. 代表为当前目录下的Dockerfile文件(也可使用绝对路径)
上面使用了一些常用的命令:FROM、MAINTAINER 、ADD 、ENV 、EXPOSE 、CMD
|