数据卷是一个可供一个或多个容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性:
- 数据卷可以在容器之间共享和重用
- 对数据卷的修改会立马生效
- 对数据卷的更新,不会影响镜像
- 数据卷默认会一直存在,即使容器被删除
挂载一个主机目录作为数据卷
把主机/data/data目录挂载到Ubuntu的/home目录
docker run -it -v /data/data:/home:ro ubuntu
-v标记一个数据卷并挂载到容器里
docker挂载数据卷的默认权限是读写(rw), :ro指定只读权限
数据卷容器
数据卷容器 , 就是一个普通的容器 ,专门用来提供数据卷供其它容器挂载
创建数据卷容器data,并创建数据卷挂载到/data
docker run -it -v /data --name data ubuntu
root@5e7b3959c104:~# touch /data/test
创建新容器挂载data容器中的数据卷
docker run -it --volumes-from data --name server01 ubuntu
root@b762422e35d4:/data# ls /data/
test
#--volumes-from参数可多次使用
由于
- 数据卷默认会一直存在,即使容器被删除
删除与容器关联的数据卷
docker rm -v data
数据卷备份
创建一个加载data容器卷的容器,并从主机挂载当前目录到容器的/backup目录
docker run --volumes-from data -v $(pwd):/backup --name server02-backup ubuntu \
> tar czvf /backup/backup.tar /data/
恢复
创建带有空数据卷的容器
docker run -v /data --name server03 ubuntu
然后创建另一个容器,挂载 server03 容器卷中的数据卷,并解压备份文件到挂载的容器卷
docker run --volumes-from server03 -v $(pwd):/backup busybox \
> tar xzvf /backup/backup.tar
验证:
docker run --volumes-from server03 busybox /bin/ls /data