🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 数据卷的使用 > 数据卷是一个位于容器中的特殊目录, 其目的是绕过UFS文件系统提供持久化和数据共享(UFS的详细介绍请参考附录B). * 数据卷可以在容器之间共享和重用数据 * 对数据卷的修改是直接的 * 更新镜像不会包含对数据卷的数据 * 数据卷一直存在, 直到不再有容器使用 ## 添加数据卷 > 在创建容器时通过指定-v参数创建数据卷,可使用-v多次挂载多个数据卷 ``` shell # Usage # 其中HOST_PATH表示宿主系统的文件系统路径,CONTAINER_PATH表示容器的文件系统路径 # 文件系统路径都为绝对路径 $ docker run -v [HOST_PATH]:[CONTAINER_PATH] IMAGE [COMMAND] [ARG...] # 创建一个基于ubuntu:14.04的数据卷容器 $ sudo docker run --name mydata -d -v /data ubuntu:14.04 /bin/bash ``` ## 挂载宿主系统目录作为数据卷 ``` shell # 创建一个基于golang:1.2的容器,并指定宿主系统/gopath路径为GOPATH路径 # 宿主系统中如果不存在该目录,Docker会自动创建 $ sudo docker run --name mygolang -d -v /gopath:/gopath golang:1.2 /bin/bash ``` ## 挂载数据卷容器 > 挂载数据卷容器主要用于容器间数据共享 ``` shell # 在创建容器时通过指定--volumes-from参数挂载数据卷容器 # 将上面创建的mydata容器中/data数据卷,挂载到另外一个容器中 $ sudo docker --name db1 -d --volumes-from mydata ubuntu:14.04 /bin/bash ``` ## 数据卷的备份与恢复 * 备份 ``` shell # 备份mydata容器中的数据卷/data,到当前目录下的backup.tar文件中 $ sudo docker run --rm --volumes-from mydata -v $(pwd):/backup ubuntu:14.04 tar cvf /backup/backup.tar /data ``` * 恢复 ``` shell # 恢复本地目录下的backup.tar文件到mydata容器下的/data数据卷 $ sudo docker run --rm --volumes-from mydata -v $(pwd):/backup ubuntu:14.04 tar xvf /backup/backup.tar ```