6.2 数据卷容器
数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载。
首先,创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata:
根据上面的实验,可以发现,当使用 -v 选项只指定一个路径时,该路径指的是容器中的路径,宿主机的路径位于/var/lib/docker/volumes。
整个过程相当于:首先使用docker volume create创建一个volume,然后将volume绑定到/dbdate路径上。
当使用 -v source:destination这种明确指定源路径的写法时,则并不会创建volume。
然后,可以在其他容器中使用--volumes-from来挂载dbdata容器中的数据卷,例如创建db1和db2两个容器,并从dbdata容器挂载数据卷:
此时,容器db1和db2都挂载同一个数据卷到相同的/dbdata目录,三个容器任何一方在该目录下的写入,其他容器都可以看到。
可以多次使用--volumes-from参数来从多个容器挂载多个数据卷,还可以从其他已经挂载了容器卷的容器来挂载数据卷。
使用--volumes-from参数所指定的容器自身并不需要保持在运行状态。
如果删除了挂载的容器(包括dbdata、db1和db2),数据卷并不会被自动删除。
如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时显式使用docker rm -v命令来指定同时删除关联的容器。
Last updated
Was this helpful?