2.7 KiB
2.7 KiB
Docker 卷 (volume) 是管理和持久化数据的重要工具。以下是一些常见的 Docker 卷操作及其用法:
1. 创建卷
使用以下命令可以创建一个新的 Docker 卷:
docker volume create my-volume
这个命令将创建一个名为 my-volume 的卷。
2. 列出所有卷
要查看所有创建的卷,可以使用:
docker volume ls
这将列出所有可用的 Docker 卷。
3. 查看卷的详细信息
可以使用 inspect 命令查看某个卷的详细信息:
docker volume inspect my-volume
这个命令将显示卷的元数据,包括其挂载点、创建时间等信息。
4. 删除卷
如果你不再需要某个卷,可以使用以下命令删除它:
docker volume rm my-volume
注意:卷必须没有被任何容器使用,才能被删除。
5. 使用卷挂载到容器
在创建容器时,可以将卷挂载到容器中,例如:
docker run -d -v my-volume:/data busybox
这将把 my-volume 挂载到容器的 /data 目录中。
6. 查看容器的挂载卷
要查看某个正在运行的容器所使用的卷,可以使用:
docker inspect <container_id>
7. 在运行的容器中访问卷
可以进入一个正在运行的容器,并查看挂载的卷内容:
docker exec -it <container_id> sh
在容器内,你可以查看挂载到某个路径的卷内容,例如:
ls /data
8. 备份卷
如前面所述,可以通过将卷的内容打包成 tar 文件进行备份。常见方法包括:
docker run --rm -v my-volume:/data -v $(pwd):/backup alpine \
sh -c "cd /data && tar -czf /backup/backup-my-volume.tar.gz ."
9. 恢复卷
要恢复之前备份的数据,可以使用以下命令:
docker run --rm -v my-volume:/data -v $(pwd):/backup alpine \
sh -c "cd /data && tar -xzf /backup/backup-my-volume.tar.gz"
10. 清理未使用的卷
如果有一些不再使用的卷,可以使用以下命令清理所有未使用的卷:
docker volume prune
这将删除所有未被容器使用的卷。
除了 -v 选项用于挂载卷外,Docker 还提供了一些其他选项来管理卷,特别是在使用 docker run 和 docker-compose 时。以下是一些相关的命令和选项:
--mount 选项提供了更灵活的方式来挂载存储。在一些场景中,它比 -v 更加清晰和强大。
使用格式:
docker run --mount type=volume,source=my-volume,target=/data busybox
这里的参数解释:
type:可以是 volume、bind 或 tmpfs。
source:要挂载的卷的名称(对于 volume 类型)。
target:容器内的挂载点。