数据卷:容器内的数据直接映射到主机环境上。
数据卷容器:使用特定的容器维护数据卷。
1、创建数据卷
创建:docker create test;//创建一个名字为test的数据卷,位置在/var/lib/docker/volumes目录下;
查看详情inspect、
列出ls、
清理无用数据卷prune、
删除数据卷rm
2、绑定数据卷
数据卷类型参数:volume,bind,tmpfs
volume:普通数据卷,位置在/var/lib/docker/volumes目录下;
bind:绑定数据卷,映射在自己指定的位置
tmpfs:临时数据卷。只存于内存中
例1:docker run -it -d --name web --mount type=bind,source=/webapp,destination=/opt/webapp training/webapp:latest
-it 带伪终端,不然无法start
-d后台运行
--name容器的命名为web
--mount绑定----------type数据盘类型,source映射主机地址,dinatination容器内地址
training/webapp:latest所用镜像
例2:docker run -it -d --name web -v /webapp:/opt/webapp training/webapp:latest
同上
设置挂载数据卷的权限为只读(默认是读写)
docker run -it -d --name web -v /webapp:/opt/webapp:ro training/webapp:latest
ro指定为只读
1、创建数据卷容器
docker run -it -v /dbdata --name dbdata ubuntu:latest
/dbdata:新建容器里面的位置
2、其他容器中挂载数据卷容器、
注:使用--volumes-from挂载容器卷时,容器本身并不需要保持运行状态
docker run -it --volumes-from dbdata --name db1 ubuntu:latest
dbdata:刚刚创建的那个名字为dbdata的容器。
1、备份
例:docker run -it --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu:latest tar cvf /backup/backup.tar /dbdata
docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu:latest:创建一个worker容器同样挂载数据容器dbdata
-v $(pwd):/backup:挂载本地的当前目录到worker容器的/backup目录
tar cvf /backup/backup.tar /dbdata容器启动后将/dbdata备份为容器内的/backup/backup.tar
2、恢复
例:
x先创建一个带有数据卷的容器dbdata2
1、docker run -it -v /dbdata --name dbdata2 ubuntu:latest /bin/bash
在另外创建一个新的容器,挂载dbdata2容器,并使用untar解压文件到所挂载的容器中
2、docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar