首页 » 翻译 » Docker » 正文

如何在容器之间共享分享数据

我们现在知道了如何使用本机的目录把mysql的容器的数据持久化,那么该如何才能让数据能在多个容器之间共享呢?

我们对docker image的了解可以从官网的这个图中看到

docker

每一个镜像都是由多个只读的 layer组成的, 当我们去run一个镜像的时候,我们创建了一个可以读写的layer在这个所有的镜像layer的最上层,而这个可以读写的层我们叫作 container storage, 这个层只能由container来读写,你在容器的声明周期中创建的文件,日志等,都存储在这个地方,而这个层不是持久性的,重启容器就没了,需要注意的,如果你用同一个镜像创建了多个容器,那么每个容器都拥有自己的 contaner storage

这就是为什么我们要挂载本机的一个目录到容器中作为mysql数据存储的地方了,这样就不会随着容器的重启丢失数据了

那么如何在多个容器之间共享数据呢?

上边的这条命令创建两个两个volume 一个/logs是一个临时的(重启会丢失),一个是/backup这个是持久性存储

然后我们通过一个新的命令 –volume-from 来共享一个容器的存储

这个时候,httpd-2 这个容器就回拥有 第一个容器 httpd 的 /logs 和 /backup目录的权限

 

 

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang

Latest posts by Zhiming Zhang (see all)