制作Dockerfile文件常用的指令
- FROM:指定构建使用的基础镜像,FROM命令必须写在其他的指令前
- MAINTAINER:用于为Dockerfile署名
- ADD:复制文件并解压到镜像中的指定位置
- ENV:设置镜像中的环境变量
- COPY:类似于ADD,将CentOS7中的文件赋值到镜像中的某个位置
- RUN:普通命令,后面紧跟具体的操作指令
- EXPOSE:声明容器对外暴露的端口号
- CMD:指定容器启动时执行的一条命令,如果指定了多条CMD命令,则只有最后一条会被执行,CMD会被 docker run之后的参数替换
前期准备工作
1、在CentOS7中使用docker拉取centos7镜像,作为制作镜像的基础镜像
2、保证CentOS7中已经有了jdk8和tomcat和项目war包
开始制作镜像
1、创建一个Dockerfile文件无后缀名
2、在Dockerfile文件内写入以下内容:
#1.指定基础镜像
FROM centos:7
#2.署名,指定制作镜像的作者
MAINTAINER wang
#3、复制CentOS7中jdk8和tomcat到镜像/usr/local目录中,并且解压缩
#jdk和tomcat在root目录下,且toc/jdk1.8.0_131-linux-x64.tar.gz是相对路径,在下面生成镜像步骤要在root目录下执行指令
ADD toc/jdk1.8.0_131-linux-x64.tar.gz /usr/local
ADD toc/apache-tomcat-8.5.43.tar.gz /usr/local
#4.修改jdk和tomcat目录名
RUN mv /usr/local/jdk1.8.0_131 /usr/local/jdk
RUN mv /usr/local/apache-tomcat-8.5.43 /usr/local/tomcat
#5.将项目复制到镜像中的tomcat目录下的webapps目录中
COPY toc/web.war /usr/local/tomcat/webapps
#6.设置工作访问目录,即执行docker exec -it tom4 /bin/bash 命令进入容器内部在哪个目录下,
WORKDIR /usr/local
#环境设置
#时区
ENV TIME_ZONE Asia/Shanghai
#字符集
ENV LANG zh_CN.UTF-8
#jdk与tomcat的环境变量
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CATALINA_HOME /usr/local/tomcat
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
#7.暴露的端口号
EXPOSE 8080
#8.启动容器时执行的命令
CMD ["catalina.sh", "run"]
执行docker命令生成镜像
首先查看Dockerfile文件的位置:
执行docker命令:
#docker build [选项] -f:DockerFile路径 -t :自定义镜像名称
/]# docker build -f dockerfile/Dockerfile -t zhangsantom:1.0 .
根据创建的镜像生成容器
执行创建容器docker命令
/]docker run --name myimagetom -dit -p 8080:8080 zhangsantom:1.0
查看导进镜像里的项目war包