1. 创建tomcat容器
为了后期war包版本快速迭代的需求,以及本地持久化tomcat的配置和日志信息,我们在宿主机新建webapps、conf、logs文件夹,然后把war包放入宿主机的webapps目录下,把tomcat.tar.gz(官网下载)解压后的conf下内容复制到conf文件夹下。
挂载本地文件夹到tomcat容器中。
# docker run -d --name mytomcat -p 8081:8080 \
-v /Users/jackyue/data/docker/tomcat/webapps/:/usr/local/tomcat/webapps/ \
-v /Users/jackyue/data/docker/tomcat/logs:/usr/local/tomcat/logs \
-v /Users/jackyue/data/docker/tomcat/conf:/usr/local/tomcat/conf tomcat
2. 进入容器内部
# docker exec -it mytomcat /bin/bash
交互式的进入tomcat容器。“docker exec”命令表示在运行中的容器中开启一个新的进程,查看webapps路径为:/usr/local/tomcat/webapps。
3. 启动、关闭tomcat容器
# docker stop mytomcat
# docker start mytomcat
重启容器,进入webapps目录查看,发现上传的war包已经自动解压部署了。
4. 访问应用
要注意访问的路径可能和自己本机测试跑的路径不同。如果你本身是一个多module项目,本地测试跑起来的url路径与目前单独war包部署跑起来的路径肯定是不同的。
在浏览器中通过url即可访问到该项目。可以发现,容器部署tomcat过程和二进制部署tomcat过程十分相似。
5. 使用dockerfile构建mytomcat镜像
我们也可以用dockerfile构建镜像的形式,使用官方tomcat作为基础镜像,在同级目录下放war包,再通过COPY命令添加到镜像中,构建image,最后以容器形式跑起来。以上工作流可以用shell脚本封装,最后一键执行。