之前我们聊过docker的基本使用,我们通过docker命令部署了tomcat哈,也看到了我们熟悉的汤姆猫,但是哈,docker的功能远不止于此,今天来说说docker的数据卷
我们先来分析一下,不使用会有什么影响,大伙都知道,我们的war包呢在webapp下存放,那么如果我们需要迭代版本,就要修改原来的包,docker启动后是一个小型容器,即我们要进入容器,换掉旧包,那么我们来操作一下吧
回顾&环境搭建
首先启动一个tomcat
然后调整容器中的webapp文件,先看到我们熟悉的汤姆猫,上篇文章说过,默认是空的
机器ip是10.10.10.10,访问10.10.10.10:8080
我们把里面的文件简洁一下
- 删掉所有文件
- 创建test工程
- 创建index.html文件,随便写点东西
看看效果
言归正传
现在我们要升级,新的包内容是Hello Tomcat-2!
那么就要把新的包复制到容器中/usr/local/tomcat/webapps下,我们来操作一下
这个文件已经准备好了,在任意目录创建test工程,里面创建index.html文件,内容为Hello Tomcat-2!,(模拟项目哈,这不是重点)
将这个项目复制到容器中
命令:
docker cp 文件 容器id:路径
看看页面,已经更新了
存在问题:
- 可以实现、但是较麻烦
- 还需要知道容器内文件的路径
- 查看日志不方便,需要进入容器查看
那么有没有一种简单的方式呢,容器之间有一种数据共享技术,将容器中的数据挂载到宿主机上,这就是卷技术,简单来说,卷技术能够让你的宿主机与容器中的两个目录文件保持一致,类似于双向绑定
删掉旧的,重新创建容器,并挂载数据卷
命令,挂载两个卷,一个是项目目录,一个是日志目录
docker run -d -p 8080:8080 -v /root/test:/usr/local/tomcat/webapps/test -v /root/tomcatlogs:/usr/local/tomcat/logs --name cxs-tomcat-demo tomcat:9
查看页面,发现还是之前的
那现在我们将文件改成Hello Tomcat-3!就简单了,直接修改宿主机挂载的/root/test目录下的内容即可,docker会自动同步到容器中
效果
我们来看一下服务日志吧
结语
- 数据卷极大的减少了我们的工作量
- docker内容还有很多,网络、容器编排,后续会持续更新
- 公众号:全栈小白