标签:img lock 命令 mkdir blog name bash test 两种方法
Docker为我们提供了两种方法来共享和持久化数据:
数据卷
数据卷有时被简单的称为卷,是存储在主机上的目录,从容器的根文件系统中可以直接访问到它。它不仅可以持久化容器中生成的数据,而且可以实现容器与容器之间,容器与主机之间的数据共享。
要配置数据卷,我们可以在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
它和我们举的第一个例子一样,只不过数据容器的功能更为单一。
注意:即使数据容器不在运行状态,数据容器中声明的卷依然可以继续被其他容器使用。
标签:img lock 命令 mkdir blog name bash test 两种方法
原文地址:http://www.cnblogs.com/ZachZhou/p/7479612.html