首页 » DevOps » Docker » Docker之数据卷管理

Docker之数据卷管理

 

挂载数据卷类似于mount命令,将一个目录作为一个单独的卷挂载到容器中,也可以将多个容器共享一个卷,方便了容器之间的数据共享

在容器中挂载数据卷

使用busybox镜像,创建一个数据卷挂载到容器的/data目录

在另一个终端中使用以下命令查看容器和宿主机挂载目录

/var/lib/docker/volumes/01a269c6a100482243ed9237809e17249c2e6e49144152132158725128fad94e/_data /data

此时我们可以看到宿主机的挂载目录

在/var/lib/docker/volumes/01a269c6a100482243ed9237809e17249c2e6e49144152132158725128fad94e/_data下,容器的挂载目录是/data

注意:-v指定的容器目录必须是绝对路径

 

挂载宿主机目录作为容器的数据卷(常用)

冒号前面的/data/volumes/web2是宿主机的目录,冒号后面的/data为容器中的目录,该目录会在容器中自动进行创建

通过该方式挂载的数据卷默认权限是读写,如果只需要只读权限,则

注意:即使容器被删除,宿主机的目录也不会消失

 

容器之间共享数据卷

指在多个容器之间共享一份存储数据,类似于NFS功能

首先需要创建一个基础的容器命名为db1,并将其存储卷挂载到/data,为了演示效果,我这里使用-it选项,以交互式模式运行容器

然后在新的终端中启动第二个容器命名为db2,使用--volumes-from参数挂载db1容器的存储卷

此时在db2容器中可以看到db1存储卷data/的内容,并且在db2中修改增加删除data/下的内容,db1也会同步生效

注意:db1容器即使在停止的状态下,--volumes-from参数也同样有效

原文链接:Docker之数据卷管理,转载请注明来源!

0