0
点赞
收藏
分享

微信扫一扫

#yyds干活盘点#17.容器数据卷

17. 容器数据卷

什么是容器数据卷?

容器数据卷,其实就是为了实现多个容器之间,数据同步与共享。

17.1. 启动容器

说明:在这里,我们使用上一章节构建的test/centos镜像,启动3个容器,使3个容器之间,可以实现数据同步与共享。

image202202241912.png

启动第一个容器:centos01

docker run -it --name centos01 test/centos /bin/bash

启动第二个容器:centos02

docker run -it --name centos02 --volumes-from centos01 test/centos /bin/bash

上面的命令表示:centos01作为父容器,centos02继承centos01进行启动

启动第三个容器:centos03

docker run -it --name centos03 --volumes-from centos01 test/centos /bin/bash 

同上面“启动第二个容器”的命令一样

启动成功之后,如下:
image202202241925.png

17.2. 测试数据同步与共享

在centos01容器中新建一个文件

首先,查看3个容器中volume01目录下有没有文件
image202202241927.png

可以看到,3个容器中的volume01目录下是没有任何文件的。

第二,在centos01容器中,新建一个test01.txt文件,并且发现,在centos02、centos03容器中,都出现了该文件,如下图
image202202241929.png

这个时候,如果在启动一个容器centos04,并且centos04通过--volumes-from centos01进行启动的话,在centos04容器中的volume01目录下,也是存在test01.txt文件的

测试结论

  • 如果再启动一个容器centos04,并且centos04通过--volumes-from centos01进行启动的话,在centos04容器中的volume01目录下,也是存在test01.txt文件的
  • 如果在centos02或centos03容器中的volume01目录下也创建了其他的文件,同样,也会分别同步/共享到centos01或centos02或centos03容器中的volume01目录下
  • 停止并删除掉其中的任意一个容器,volume01目录下的文件不会丢失;也就是说,只要有任意一个容器在使用该目录,文件就不会丢失

17.3. 应用与实践

通过以上的测试,我们发现,可以使用容器数据卷完成mysql、redis等数据的同步与共享。

以mysql为例:

#启动第一个mysql容器
docker run -d -p 3306:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

#启动第二个mysql容器
docker run -d -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7

这样即可实现mysql的数据同步与共享。

17.4. 总结

  • 容器之间用于数据同步的,一般都是配置文件居多
  • 容器数据卷的生命周期,一直持续到没有容器使用为止。

-----------------------------------EOF----------------------------------

举报

相关推荐

0 条评论