4.1 From(指定基础镜像)
- Dockerfile必须指定FROM ,并且是第一行,属于构建命令。
- 表示基于那个基础镜像来构建
- 基础镜像可以是本地镜像也可以是远程仓库的镜像
语法: FROM image name
4.2 MAINTAINER(指定镜像作者信息)
用来指定构建镜像的作者信息,方便后续通过docker inspect命令查看,对镜像没有实际的影响。
语法: MAINTAINER author name
4.3 RUN (指定需要执行的shell命令)
该命令会在新创建的镜像上添加新的层面。docker build 时运行。
格式:RUN command命令
4.4 CMD(设置容器启动时执行的操作)
可以是执行自定义脚本,也可以是执行系统命令,该指令只能在文件中存在一次,如果有多个,则只会执行最后一条。docker run时运行。
格式: CMD ["executable","param1","param2"] 或 CMD ["param1","param2"]
4.5 ENTRYPOINT(设置容器启动时执行的操作)
设置指令,指定容器启动时执行的命令,可以追加命令,但是只有最后一个ENTRYPOINT有效。
格式: ENTRYPOINT ["executable", "param1","param2"]
4.6 USER(设置容器执行shell命令的用户)
设置指令,设置启动该容器的用户,默认是root用户。
格式:USER root
4.7 EXPOSE(宿主和容器端口映射设置)
指定容器需要映射到宿主机器的端口。
格式: EXPOSE port
4.8 ENV(设置环境变量)
ENV指令可以用于为docker容器设置环境变量。
示例:ENV JAVA/HOME /usr/local/jdk1.8.0.25 指定java环境变量
4.9 ADD(文件复制命令)
复制文件命令,支持自动下载和解压
格式:ADD 源路径 目标路径
优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。
缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。
说明:参数:destination 是容器内的路径。source 可以是 下载文件的URL 或者宿主主机的目录
4.10 COPY
类似ADD命令,将地文件拷贝到镜像中
本地目录为源目录时,官方推荐使用COPY。
4.11 VOLUME (指定挂载点)
创建一个可以从本地主机或其他容器挂载的挂载点,用来存放数据库和需要保持的数据等
4.12 WORKDIR(设置工作目录)
指定RUN、CMD与ENTRYPOINT 命令的工作目录。
格式: WORKDIR /path/to/workdir
FROM centos
#设置作者
MAINTAINER xiaoming admion@qq.com
#拷贝tomcat jdk 到镜像内并解压
ADD apache-tomcat-8.5.30.tar.gz /usr/local/tomcat
ADD jdk-8u202-linux-x64.tar.gz /usr/local/jdk
#设置工作目录
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置jdk 和tomcat的环境变量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_202
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.30
ENV CATALINA_BASE /usr/local/tomcat/apache-tomcat-8.5.30
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#设置暴露的端口
EXPOSE 8080
#运行tomcat
CMD /usr/local/tomcat/apache-tomcat-8.5.30/bin/startup.sh && tail -f /usr/local/tomcat/apache-tomcat-8.5.30/logs/catalina.out
1.https://cloud.tencent.com/developer/article/2354336?areaId=106005
参考资料: