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