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

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2015-06-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Samego开发资源

初识docker compose工具

18630
来自专栏hbbliyong

docker 创建mysql镜像,并成功进行远程连接

然后可以进入容器的命令行模式,接着修改 /etc/mysql/my.cnf 文件即可

20410
来自专栏云原生架构实践

Docker EE 安装 on centos7

有两种方法可以 在Centos上安装和升级Docker企业版(Docker EE):

49020
来自专栏运维技术迷

Veeam Backup & Replication(二):添加虚拟化主机和配置备份存储

一、添加虚拟化主机 veeam可以添加单个ESXi主机,也可以添加vCenter服务器,因为做实验,就添加一台ESXI主机为例吧。 1.1 选择 Virtual...

520120
来自专栏编程

在容器中部署mysql与数据持久化

通过上一节的学习,我们知道了如何部署一个不带数据库的静态nginx页面;但一般的web应用中,还需要部署mysql数据库,本节我们将学习如何使用容器部署mysq...

30990
来自专栏古时的风筝

Docker:镜像操作和容器操作

镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID...

231100
来自专栏电光石火

Windows10 安装docker

64230
来自专栏世界第一语言是java

docker部署redis,清空redis缓存

1.2K10
来自专栏程序小工

【Docker】更新docker镜像源

使用 docker 拉取 Docker Hub 上镜像时,可能会由于网络限制,导致下载失败。可以将 docker 的镜像源设置为国内的镜像, 目前支持的镜像源...

3.6K20
来自专栏IT派

用Docker玩转PHP环境配置

是否有这样的场景,你搞了一个项目,在本地开发时需要搭建环境,放到线上时也需要搭建环境,到公司想暗戳戳玩一下要搭建环境,不搭还不行,因为你的环境依赖还挺多。这个时...

23620

扫码关注云+社区

领取腾讯云代金券