Docker Volumn容器间共享数据的实现

2020-06-17 07:24:29易采站长站整理

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