Docker容器如何共享数据

时间:2022-05-06
本文章向大家介绍Docker容器如何共享数据,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

容器与外部的数据共享是通过数据卷实现的

数据卷概念

是容器与外部在文件系统上的通道,可以和主机的文件系统建立联系,也可以和其他容器建立文件级的联系

容器把希望对外的数据写入自己的数据卷,其他容器就可以加载这个数据卷,操作其中的数据了

数据卷可以指定目录和文件,但实际操作中经常使用目录,所以数据卷可以大概理解为一个挂载目录,可以和挂载主机目录,也可以被其他容器挂载,这样就实现了容器和主机之间、容器和容器之间的数据共享问题

数据共享两种形式

(1)挂载一个主机目录作为数据卷

挂载一个本地已有目录到容器中作为数据卷

$ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp

-v 指定创建一个数据卷

/src/webapp:/opt/webapp    冒号前是主机目录,冒号后是容器内目录

(2)容器间共享数据卷

容器A创建了数据卷

$ sudo docker run -it -v /dbdata --name dbdata ubuntu

容器B引用容器A的数据卷

使用参数 --volumes-from 来挂载dbdata容器中的数据卷

$ sudo docker run -it --volumes-from dbdata --name db1 ubuntu

任何一方在该目录下的写入,其他容器都可以看到

可以多次使用--volumes-from参数来从多个容器挂载多个数据卷。还可以从其他已经挂载了容器卷的容器来挂载数据卷

$ sudo docker run -d --name db2 --volumes-from db1 ubuntu