全栈小白的gravatar头像
全栈小白 2023-02-07 15:23:23
【docker】- 容器数据卷技术

之前我们聊过docker的基本使用,我们通过docker命令部署了tomcat哈,也看到了我们熟悉的汤姆猫,但是哈,docker的功能远不止于此,今天来说说docker的数据卷

我们先来分析一下,不使用会有什么影响,大伙都知道,我们的war包呢在webapp下存放,那么如果我们需要迭代版本,就要修改原来的包,docker启动后是一个小型容器,即我们要进入容器,换掉旧包,那么我们来操作一下吧

回顾&环境搭建

首先启动一个tomcat

【docker】- 容器数据卷技术

然后调整容器中的webapp文件,先看到我们熟悉的汤姆猫,上篇文章说过,默认是空的

【docker】- 容器数据卷技术

机器ip是10.10.10.10,访问10.10.10.10:8080

【docker】- 容器数据卷技术

我们把里面的文件简洁一下

  • 删掉所有文件

  • 创建test工程

  • 创建index.html文件,随便写点东西

【docker】- 容器数据卷技术

看看效果

【docker】- 容器数据卷技术

言归正传

现在我们要升级,新的包内容是Hello Tomcat-2!

那么就要把新的包复制到容器中/usr/local/tomcat/webapps下,我们来操作一下

这个文件已经准备好了,在任意目录创建test工程,里面创建index.html文件,内容为Hello Tomcat-2!,(模拟项目哈,这不是重点)

【docker】- 容器数据卷技术

将这个项目复制到容器中

命令:

docker cp 文件 容器id:路径

看看页面,已经更新了

【docker】- 容器数据卷技术

存在问题:

  1. 可以实现、但是较麻烦

  2. 还需要知道容器内文件的路径

  3. 查看日志不方便,需要进入容器查看

那么有没有一种简单的方式呢,容器之间有一种数据共享技术,将容器中的数据挂载到宿主机上,这就是卷技术,简单来说,卷技术能够让你的宿主机与容器中的两个目录文件保持一致,类似于双向绑定

删掉旧的,重新创建容器,并挂载数据卷

命令,挂载两个卷,一个是项目目录,一个是日志目录

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

【docker】- 容器数据卷技术

查看页面,发现还是之前的

【docker】- 容器数据卷技术

那现在我们将文件改成Hello Tomcat-3!就简单了,直接修改宿主机挂载的/root/test目录下的内容即可,docker会自动同步到容器中

【docker】- 容器数据卷技术

效果

【docker】- 容器数据卷技术

我们来看一下服务日志吧

【docker】- 容器数据卷技术


打赏
最近浏览
流水本无情  LV9 3月13日
gw0207  LV13 2023年4月24日
youwuzuichen  LV10 2023年3月27日
全栈小白  LV34 2023年3月15日
故事_sun  LV26 2023年3月9日
要保持微笑  LV4 2023年3月9日
haidaozhi  LV7 2023年3月8日
随便取个名字_哈哈  LV27 2023年3月6日
MrReady  LV14 2023年3月4日
SuperPrivate  LV9 2023年3月2日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友