Docker学习(九)Volumn容器间共享数据
Docker学习(九)Volumn容器间共享数据
volume是什么
volume在英文中是容量的意思, 在docker中是数据卷的意思,是用来保存数据的容器
为什么要进行数据共享
在集群中有多台tomcat,对于集群中的tomcat部署的代码是同一份代码的副本,如果页面文件发生变化,意味着每个容器中的页面文件都要进行更新,在大规模的集群中这样的工作量会被无限放大,这时候就需要用到数据共享解决此问题,所谓数据共享指的是多个容器共享一个数据副本,在docker环境中我们该如何实现?
数据共享原理
在宿主机的硬盘上开辟一个空间,用来存放共享的数据,多个容器共享这个目录
实现数据共享的解决方案
说到数据共享我们其实很容易想到linux中的mount命令,通过挂载一共享目录来
- [x] 使用参数
-v 宿主机目录:/容器内容目录
将共享的文件放在宿主机的某个文件中,然后多个容器之前共享这一个目录,实现数据共享,这需要在启动时
- [x] 使用参数
-v 宿主机目录:/容器内容目录
共享容器挂载宿主机共享目录,然后通过挂载共享容器实现数据共享
容器直接挂载共享目录
资源列表
准备2个tomcat容器:
tomcat8000
tomcat8001
详细步骤
创建共享数据
创建共享目录:mkdir -p /usr/local/docker/volumn/pages/
在共享目录中增加共享文件: index.html,内容如下我是一个volumn 共享目录 albk!
创建
tomcat8000
和tomcat8001
docker run -d --name tomcat8000 -p 8000:8080 -v /usr/local/docker/volumn:/usr/local/tomcat/webapps tomcat
docker run -d --name tomcat8001 -p 8001:8080 -v /usr/local/docker/volumn:/usr/local/tomcat/webapps tomcat
启动容器时将宿主机的
/usr/local/docker/volumn
目录,挂载到tomcat容器的/usr/local/tomcat/webapps
这个目录,这样就可以实现数据共享验证容器是否正常启动
docke ps
docker exec -it a05a987b6da0 /bin/bash
查看一下webapps目录下,是否挂载成功
- 修改共享文件
echo "我是一个volumn 共享目录 albk! 被修改了" > index.html
- 浏览器再次验证
可以看到我们修改的内容,已经实时生效了,不需要重新部署tomcat容器,但是这样实现每次容器启动的时候,参数会很长,很容易出错,在集群较小的时候可以这样,但是规模大的时候,这也是不少的工作量,下面我们看一下另一种方法
共享容器挂载
- 创建一个共享容器
webpages
,通过上述的方法,使用-v 挂载共享目录
docker create --name webpages -v /usr/local/docker/volumn/pages:/usr/local/tomcat/webapp tomcat /bin/true
挂载共享容器
docker run --name tomcat8000 -d -p 8000:8080 --volumes-from webpages tomcat
docker run --name tomcat8001 -d -p 8001:8080 --volumes-from webpages tomcat
验证过程和上面的一样,容器webpages实际作用就是定义了一个挂载点,修改内容的时候,只需要修改共享容器的共享目录即可
总结
如果容器少的话用-v
如果容器多的话, 可以使用-volumes-from
本质与-v是一样的,具体使用哪个根据实际情况而定
写在最后
相关文章会首发公众号,可以关注公号albk,关注后可以获取大量学习视频
期望热爱技术的你一起来交流,获取最新资料和学习资源,可以关注公众号albk, 个人博客 !
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 习近平总书记这样寄语当代青年 4988431
- 2 俄方宣布通缉泽连斯基 4913086
- 3 金价跌至近一个月低点 4822251
- 4 “假日经济”持续升温 4705898
- 5 珠海暴雨 医院后山下出巨大瀑布 4685806
- 6 小孩打碎博物馆12万瓷瓶 该不该免赔 4517660
- 7 凤凰传奇北京站万人蹦迪 4441142
- 8 连沙漠里都“堵人了” 4338091
- 9 每天只需睡2小时说法不靠谱 4240703
- 10 威海5岁男童死因查明 爷爷最新发声 4192886