Docker学习,理论知识,第四天:DockerFile自定义Tomcat
测试下面的两个保留字指令
3.7》、ADD 将宿主机目录下的文件拷贝进镜像且ADD命令自动处理URL和解压tar压缩包 ADD centos-7-docker.tar.xz (COPY直接拷贝,ADD拷贝+解压缩)
3.8》、COPY 类似ADD,拷贝文件和目录到镜像中 COPY src desc 或 COPY["src","desc"]
案例:
1、创建tomcat9目录 mkdir tomcat9
2、创建文件 touch c.txt
3、将JDK和tomcat安装包的压缩包拷贝进上一步目录apache-tomcat-9.0.8.tar.gzjdk-8u171-linux-x64,tar.gz
4、在tomcat9下新建Dockerfile文件,目录内容:FROM centosMAINTAINER mytomcat_lee<james_taylor@126.com>#把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下COPY c.txt /usr/local/cincontainer.txt#把java与tomcat添加到容器中ADD jdk-8u171-linux-x64,tar.gzADD apache-tomcat-9.0.8.tar.gz#安装vim编辑器RUN yum -y install vim#设置工作访问时候的workdir路径,登录落脚点ENV MYPATH /usr/localWORKDIR $MYPATH#配置java与tomcat环境变量ENV JAVA_HOME /usr/local/jdk1.8.0_171ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin#容器运行时监听的接口 EXPOSE 8080#启动运行tomcat#ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh"]#CMD ["/usr/local/apache-tomcat-9.0.8/bin/catalina.sh","run"]CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out5、构建build镜像docker build Dockerfile -t mytomcat9 .(-f 目录file )
6、测试docker images
7、运行 docker run -d -p 9080:8080 --name myt9 -v /opt/tomcat9/test:/usr/local/apache-tomcat-9.0.8/webapps/test -v /opt/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.8/logs --privileged=true mytomcat9(--privileged=true是防止-v挂载容器卷的时候写权限不够而添加的)
8、docker ps
9、http://localhost:9080
10、在/opt/tomcat9/test下扔一个项目 测试下myt9是否可以跑
11、docker restart myt9 重启容器