为了账号安全,请及时绑定邮箱和手机立即绑定

Docker学习(九)Volumn容器间共享数据

标签:
Docker

Docker学习(九)Volumn容器间共享数据

![此处输入图片的描述][1]


volume是什么

volume在英文中是容量的意思, 在docker中是数据卷的意思,是用来保存数据的容器

为什么要进行数据共享

![此处输入图片的描述][4]

在集群中有多台tomcat,对于集群中的tomcat部署的代码是同一份代码的副本,如果页面文件发生变化,意味着每个容器中的页面文件都要进行更新,在大规模的集群中这样的工作量会被无限放大,这时候就需要用到数据共享解决此问题,所谓数据共享指的是多个容器共享一个数据副本,在docker环境中我们该如何实现?

数据共享原理

在宿主机的硬盘上开辟一个空间,用来存放共享的数据,多个容器共享这个目录

实现数据共享的解决方案

说到数据共享我们其实很容易想到linux中的mount命令,通过挂载一共享目录来

  • 使用参数 -v 宿主机目录:/容器内容目录 将共享的文件放在宿主机的某个文件中,然后多个容器之前共享这一个目录,实现数据共享,这需要在启动时

![此处输入图片的描述][2]

  • 使用参数 -v 宿主机目录:/容器内容目录共享容器挂载宿主机共享目录,然后通过挂载共享容器实现数据共享

![此处输入图片的描述][3]

容器直接挂载共享目录

资源列表

准备2个tomcat容器:
tomcat8000 tomcat8001

详细步骤

  1. 创建共享数据
    创建共享目录:mkdir -p /usr/local/docker/volumn/pages/
    在共享目录中增加共享文件: index.html,内容如下

    我是一个volumn 共享目录 albk!
    
  2. 创建tomcat8000tomcat8001

    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 这个目录,这样就可以实现数据共享

  1. 验证容器是否正常启动
    docke ps

![此处输入图片的描述][5]

docker exec -it a05a987b6da0 /bin/bash
查看一下webapps目录下,是否挂载成功

![此处输入图片的描述][6]

![此处输入图片的描述][7]

  1. 修改共享文件
    echo "我是一个volumn 共享目录 albk! 被修改了" > index.html
  2. 浏览器再次验证

![此处输入图片的描述][8]

可以看到我们修改的内容,已经实时生效了,不需要重新部署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是一样的,具体使用哪个根据实际情况而定

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消