编写 Dockerfile 文件
vim Dockerfile
# 镜像应用的根底镜像FROM centos# 指明镜像的作者MAINTAINER wu<wuyuanhui@qq.com># 增加压缩包,会主动解压,需提前下载放到 Dockerfile 文件所在目录ADD jdk-8u11-linux-x64.tar.gz /usr/local/ADD apache-tomcat-9.0.22.tar.gz /usr/local/# 相似ADD指令,将文件拷贝到镜像中,需提前编写放到 Dockerfile 文件所在目录COPY readme.txt /usr/local/readme.txt# 镜像构建时须要运行的命令RUN yum -y install vimRUN yum -y install net-tools# 构建时设置环境变量ENV MYPATH /usr/local# 镜像的工作目录,启动容器后进入的目录WORKDIR $MYPATH# 设置 JAVA 环境变量ENV JAVA_HOME /usr/local/jdk1.8.0_11ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.22ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin# 指定对外的裸露端口EXPOSE 8080# 匿名挂载数据卷VOLUME ["volume01","volume02"]# 容器启动时须要运行的命令,多个CMD命令只有最初一个会失效# CMD中的命令会被docker run的命令齐全代替CMD echo $MYPATHCMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out
# 构建镜像# -f 指定应用的Dockerfile文件,-t 指定生成镜像的版本,. 镜像放在当前目录docker build -t my_tomcat .# 查看所有镜像docker images# 运行容器,默认会去找最新版,所以须要指定版本docker run -d -p 8080:8080 --name my_tomcat01 \-v /home/tomcat/test:/usr/local/apache-tomcat-9.0.22/webapps/test \-v /home/tomcat/logs:/usr/local/apache-tomcat-9.0.22/logs \my_tomcat# 进入容器docker exec -it my_tomcat01 /bin/bash
# 查看镜像构建历史docker history image_id# 查看容器详情和数据卷挂载信息docker inspect my_centos01