2.

卷是保存docker容器生成和使用数据的首选机制,卷完全由docker管理。

卷通常是持久数据最好的选择,因为卷不会增加使用它的容器大小,并且卷的内容存在给定容器的生命周期之外。

2.1. 卷挂载优点

  1. 更容易备份或者迁移

  2. 可以使用cli或者api管理卷。

  3. 使用与windows和linux环境。

  4. 可以在多个容器之间安全共享卷。

  5. 卷驱动程序运行您在远程主机或者云提供程序上存储卷。

  6. 新卷可以通过容器预先填充其内容。

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

备注

建议使用–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 "