2. 卷¶
卷是保存docker容器生成和使用数据的首选机制,卷完全由docker管理。
卷通常是持久数据最好的选择,因为卷不会增加使用它的容器大小,并且卷的内容存在给定容器的生命周期之外。
2.1. 卷挂载优点¶
更容易备份或者迁移
可以使用cli或者api管理卷。
使用与windows和linux环境。
可以在多个容器之间安全共享卷。
卷驱动程序运行您在远程主机或者云提供程序上存储卷。
新卷可以通过容器预先填充其内容。
2.2. 创建和管理卷¶
# 创建卷
docker volume create my-vol
# 获取卷详细信息
docker volume inspect my-vol
# 删除卷
docker volume rm my-vol
docker run -d --name devtest --mount source=my-vol,target=/app nginx:latest
docker run -d --name devtest2 -v my-vol:/app nginx:latest
备注
建议使用–mount 方式挂载
如果挂载的卷是空的目录, 然后目标容器的特定目录是有内容的, 这样在启动的时候挂载过去的时候, 这个卷会被目标容器的内容填充的。
2.3. 使用卷备份或者迁移数据¶
2.3.1. 备份¶
docker run --rm --volume-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
2.3.2. 还原容器¶
docker run -v /dbdata --name dbstore2 ubuntu /bin/bash
docker run --rm --volumes-from dbstore2 -v $(pwd):/backup ubuntu bash -c "cd /dbdata && tar xf /backup.tar "