Docker学习
一、DockerFile自定义Tomcat9
测试下面的两个保留字指令
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.gz
jdk-8u171-linux-x64,tar.gz
4、在tomcat9下新建Dockerfile文件,目录内容:
FROM centos
MAINTAINER 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.gz
ADD apache-tomcat-9.0.8.tar.gz
#安装vim编辑器
RUN yum -y install vim
#设置工作访问时候的workdir路径,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_171
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8
ENV 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.out
5、构建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 重启容器