码迷,mamicode.com
首页 > 其他好文 > 详细

Docker(5)-共享和持久化数据

时间:2017-09-05 23:07:59      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:img   lock   命令   mkdir   blog   name   bash   test   两种方法   

    Docker为我们提供了两种方法来共享和持久化数据:

  • Data Volumes
  • Data Containers

 

    数据卷

    数据卷有时被简单的称为卷,是存储在主机上的目录,从容器的根文件系统中可以直接访问到它。它不仅可以持久化容器中生成的数据,而且可以实现容器与容器之间,容器与主机之间的数据共享。

技术分享 

    要配置数据卷,我们可以在docker命令中使用-v选项并指定卷名。例如:

docker run -it -v /mydir --name first ubuntu /bin/bash

    ls一下,可以看到在容器的根文件系统中,已经有了一个名为mydir目录。我们进去创建一个文件:

cd mydir
echo "Simple test file" > file1.txt

     退出第一个容器后,我们来运行第二个容器去访问我们之前创建的卷:

docker run -it --volumes-from first --name second ubuntu /bin/bash

     这里我们使用了--volumes-from选项。

     我们可以看到,包含了file1.txt文件的mydir目录已经存在在容器里。

 

     那么容器怎样才能访问和共享主机的数据呢?非常简单,还是使用-v选项:-v hostdirectory:datavolume。例如:

mkdir ~/shareddir
docker run -it -v ~/shareddir:/volumedir ubuntu /bin/bash
cd volumedir
echo "Simple text file" > sharedfile.txt

    sharedfile.txt是可以被容器和主机一起访问的。只不过在主机上,它位于主目录中的shareddir目录中;在容器中,它位于根目录中的volumedir目录中。

 

    数据容器

    数据容器是指那些只用来保存数据的容器。通常会在容器中创建一个或多个卷,其他的容器就可以通过--volumes-from选项来访问它们。

    例如,我们先运行一个名为storage的数据容器,它包含一个卷并在后台运行:

docker run -d -v /data --name storage ubuntu

    接下来我们运行另一个容器:

docker run -it --volumes-from storage ubuntu bash

    它和我们举的第一个例子一样,只不过数据容器的功能更为单一。

技术分享

    注意:即使数据容器不在运行状态,数据容器中声明的卷依然可以继续被其他容器使用。

 

Docker(5)-共享和持久化数据

标签:img   lock   命令   mkdir   blog   name   bash   test   两种方法   

原文地址:http://www.cnblogs.com/ZachZhou/p/7479612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!