概述
dockerfile 是制作镜像的一种方式之一,编写dockerfile就像是自己在安装一个操作系统一样,把你想安装的软件,配置,环境信息都转换为dockerfile命令,然后使用docker build -t imageName就能生成你想要的操作系统。
FROM命令
1.必须放在Dockerfile文件第一行,意思就是继承自哪个镜像
2.比如我们想要做一个有JAVA环境的,那么基本上你会FROM primetoninc/jdk:1.7Z
WORKDIR
1.WORKDIR命令就是表面意思,工作目录,指定之后,build的时候就会创建一个指定路径的路径
2.比如我们一般工作中,都是会指定 WORKDIR /app,那么你的默认目录就在/app
你做的任何操作都是在/app,除非你指定新目录
ADD & COPY
1.COPY命令意思在build的时候,需要拷贝哪些文件到镜像中
2.ADD命令其实和COPY功能差不多,不过ADD 构建时可以将URL资源直接下载添加到镜像中(部分压缩文件自动解压)
3.比如我们制作一个tomcat镜像,那么我们需要将tomcat包拷贝到镜像中 像 COPY apache-tomcat-
8.5.70.tar.gz /app,或者 ADD http://*/apache-tomcat-8.5.70.tar.gz /app
RUN
1.RUN命令其实就是在构建时需要执行的一些辅助命令,可以执行任何shell命令
2.比如我们通过COPY添加了tomcat 但是是个压缩包需要执行解压操作RUN tar -zxvf apache-tomcat-
8.5.70.tar.gz,这样我们就真的可以使用tomcat了
CMD
1.CMD 命令在构建时候是不执行的,而是用于在镜像构建完成,使用镜像启动容器执行的命令
2.比如我们安装tomcat,肯定是执行catalina.sh run 命令,那么我们就要 CMD ./apache-tomcat-
8.5.70/bin/catalina.sh run
ENV
1.ENV命令是在我们构建我们自己镜像时可指定的环境变量,这个用于我们 run时候指定环境变量使用
2.比如我们运行的是一个java程序,那么我们可以将环境变量参数作为java的main方法传参
完整tomcat Dockerfile
#基于JDK
FROM primetoninc/jdk:1.7
WORKDIR /app
#下载tomcat
RUN echo download tomcat start
ADD https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.70/bin/apache-tomcat-8.5.70.tar.gz /app
RUN echo download tomcat end
#解压tomcat
RUN tar -zxvf apache-tomcat-8.5.70.tar.gz
#启动tomcat
CMD ./apache-tomcat-8.5.70/bin/catalina.sh run