docker数据卷

创建数据卷:docker run -d -P -it --name web1 -v /webapp training/webapp /bin/bash

(使用training/webapp镜像创建一个web1容器,并创建一个数据卷挂载到容器的/webapp目录)

-v标记创建一个数据卷(名字叫webapp)并且挂载到容器(training/webapp)里。
--name指定容器的名称web1
-d是指守护状态下运行(daemon)

 

-v标记也可以指定挂载一个本地的已有目录到容器中去作为数据卷(推荐方式)。

docker run -d -P --name web -v /tmp/webapp:/opt/webapp training/webapp /bin/bash

(挂载主机上/tmp/webapp目录,到容器的/opt/webapp下作为数据卷)


数据卷容器

如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门用来提供数据卷供其他容器挂载。

首先,创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata:

docker run -ti -v /dbdata --name dbdata ubuntu

然后,可以在其他容器中使用--volumes-from来挂载dbdata容器中的数据卷.

例如创建db1和db2两个容器,并从dbdata容器挂载数据卷

docker run -ti --volumes-from dbdata --name db1 ubuntu

docker run -ti --volumes-from dbdata --name db2 ubuntu

此时容器db1和db2都挂载同一个数据卷到相同的/dbdata目录。三个容器任何一方在该目录下的写入,其他容器都可以看到。


数据卷容器备份

1.挂载本地文件到容器内:

docker run --volumes-from db1 -v $(pwd):/docker --name db3 -it ubuntu /bin/bash
(把本地当前控制台所在目录$(pwd),挂载到容器db1的docker目录,指定为新容器db3(db1不会改动))

控制台所在目录$(pwd)下内容有:

进入db3容器内,发现相比db1多了docker目录,进入docker目录,多了docker文件(就是上面控制台所在目录的docker目录):

在本地机器上,对本地docker目录进行操作,新增文件:

进入容器db3,发现本地上的操作同步到了容器上:

对容器内进行操作,新增文件b.txt:

进入本地文件,发现,容器内操作同步到了本地


 

 

posted @ 2019-04-07 15:06  jj千寻  阅读(95)  评论(0编辑  收藏  举报