Docker Volume 是一种持久化数据存储的方式,可以将容器中的数据存储到宿主机或者其他 Docker 集群节点上。下面是 docker volume 的常用选项和用法:
- 创建一个新的数据卷
使用 docker volume create
命令可以创建一个新的空白数据卷。
docker volume create my_volume
- 查看所有已创建的数据卷
使用 docker volume ls
命令可以列出所有已经创建的数据卷。
docker volume ls
- 删除一个数据卷
使用 docker volume rm
命令删除指定名称的数据卷。
docker volume rm my_volume
- 挂载一个数据卷到容器中
使用 -v
参数来将一个命名的数据卷挂载到容器中。格式为:-v <volume_name>:<mount_point>
,其中 <volume_name>
为已经创建好了的数据卷名称, <mount_point>
为挂载点。
例如,以下命令将名为 my_volume
的数据卷挂载到 nginx 容器内部 /usr/share/nginx/html
目录下:
docker run -d --name nginx -p 80:80 \
-v my_volume:/usr/share/nginx/html \
nginx
- 使用本地文件系统路径创建一个新的数据卷
使用以下命令可以在本地文件系统上创建一个新的空白数据卷:
docker volume create --driver local \
--opt type=none \
--opt device=/path/to/dir \
--opt o=bind my_volume
其中 --driver local
表示使用本地驱动来创建数据卷。 --opt type=none
表示不指定文件系统类型,而是使用宿主机上的一个目录作为源目录。 --opt device=/path/to/dir
表示将宿主机上的 /path/to/dir
目录作为数据卷源目录。--opt o=bind
表示使用 bind mount 模式来挂载数据卷。
- 查看某个数据卷的详细信息
使用 docker volume inspect
命令可以查看某个数据卷的详细信息:
docker volume inspect my_volume
- 清除所有未被使用的数据卷
使用以下命令可以清除所有未被使用过的数据卷:
docker volume prune
- 备份和恢复一个数据卷
Docker 提供了一些命令用于备份和恢复一个数据卷:
- 备份:
docker run --rm -v my_volume:/data -v $(pwd):/backup busybox tar cvf /backup/my_volume.tar /data
- 恢复:
docker run --rm -v my_volume:/data -v $(pwd):/backup busybox tar xvf /backup/my_volume.tar
以上命令中,我们运行了一个临时容器并将其与需要备份或者恢复的存储空间进行挂载,并执行了相应的命令。