如果您想在多个 Docker 容器之间共享文件和目录,可以轻松地将 Docker 卷挂载到不同的容器。然而,管理如此大量的 Docker 卷有时会变得非常困难。在本文中,我们将讨论如何通过 Docker 命令行界面 (CLI) 执行命令来管理 Docker 卷。
什么是 Docker 卷?
Docker 卷旨在提供持久存储机制。它用于管理数据并将其存储在容器系统之外,以确保即使容器被移除或重建,数据也能持久化。这对于维护数据一致性以及在多个容器之间共享数据至关重要。Docker 卷为 docker 添加了管理docker中有状态应用程序的功能。
为什么要使用 Docker Volumes?
以下是使用 docker 卷的原因:
-
持久存储:卷有助于在容器的生命周期结束后使数据持久化。即使容器被删除或更新,它也能让我们保留重要数据。
-
数据共享:卷有助于多个容器之间轻松共享数据,促进应用程序内不同服务之间的通信和协调。
-
性能:使用卷时,与将数据存储在容器的可写层相比,我们可以提高 I/O 操作性能,因为卷针对存储操作进行了优化。
-
备份和恢复:可以轻松备份和恢复卷,从而更轻松地管理和保护您的数据。
Docker Volumes 命令
以下是docker volumes的一些命令:
目的 | Docker 命令 |
---|---|
创建 docker 卷 | docker volume create \ |
列出 docker 中存在的所有 docker 卷 | docker volume ls |
检查 docker 卷 | docker volume inspect \ |
删除 docker 卷 | docker volume rm \ |
删除所有未使用的卷 | docker volume prune |
将卷附加到正在运行的 docker 容器中。 | docker run -v \ |
在容器之间复制数据 | docker cp \ |
Docker 中的卷如何工作?
Docker卷用于存储在docker中容器化的应用程序所产生的数据,所有的数据都会被存储在docker主机系统上的专用目录下。
/var/lib/docker/volumes
Docker 中的卷将被挂载到应用程序的特定主机路径,应用程序的数据将存储在该路径下。这意味着,由于卷独立保存在主机上,可以使用手动工具直接访问或重新挂载到另一个容器,因此即使容器终止,写入的数据仍然可访问。要了解有关 Docker 命令的更多信息,请参阅Docker 速查表。
Docker Volume 命令实现示例
以下是实现docker卷命令的示例:
1.创建Docker卷
- 要创建 Docker Volume,您可以使用 Volume Create 命令,如下所示。
sudo docker volume create vol-demo
2. 使用容器挂载卷
- 创建卷后,您可以使用Docker 容器-v标志和Docker run命令来挂载它。
sudo docker run -it -v <volume-path-in-local-machine>:<dest-path-in-container> <image-name>
```

* 要验证卷是否已成功挂载,您可以移动到容器内的目标目录。

### 3. 列出所有 Docker 卷
* ****您可以使用 Docker Volume ls****命令列出所有 Docker 卷。
```bash
sudo docker volume ls
4. 检查Docker卷
- 您可以使用 Volume Inspect 命令获取 Docker Volumes 的详细信息。
sudo docker volume inspect <volume-name>
如何删除特定的 Docker 卷?
要在 docker 中删除特定卷,请执行以下 dockervolumerm 命令并指定卷名称。
sudo docker volume rm <volume-name>
如何删除所有 Docker 卷?
以下步骤指导您如何删除所有 docker 卷:
步骤 1:删除所有 Docker 卷
- 要一次性删除所有 Docker 卷,可以使用以下命令。请注意,在删除 Docker 卷之前,需要确保它尚未挂载到任何容器。
sudo docker volume rm $(sudo docker volume ls -q)
第 2 步:验证已删除的卷
- 要验证所有卷是否都已被删除,您可以使用卷列表命令。
sudo docker volume ls
Docker Volumes 的优势
Docker 卷的优点如下:
-
持久性:即使 docker 中重新创建容器,附加到容器的卷仍会存在,因此应用程序的数据不会丢失,并且借助 docker 卷,您可以部署和维护状态完整的应用程序,例如数据库、配置文件和日志。
-
隔离性:如果在docker中部署了两个状态完整的应用程序,那么我们需要将docker卷附加到这两个应用程序容器上,在这种情况下,docker可以确保两个卷之间不会发生冲突,并且彼此隔离。
-
可移植性:附加到 Docker 卷的卷可以从一台主机移植到另一台主机,或从一个环境移植到另一个环境。这使得在开发、准备和生产环境之间轻松进行数据迁移变得轻而易举,而无需修改容器镜像。
-
动态数据管理:在容器的整个生命周期中,Docker 卷实现了动态数据管理。无需更改容器本身即可添加、编辑和删除数据,使数据处理更加灵活和动态。
如何清理 docker 卷?
以下步骤指导您如何清理 docker 卷:
步骤 1:首先使用以下命令列出所有 docker 卷
docker volume ls
步骤 2:使用以下命令使用 docker volume prune
删除所有未使用的卷
docker volume prune
步骤 3:要删除 docker 中的特定卷,请使用 dockervolumerm 命令指定卷名称,如下所示
docker volume rm <volume_name>
步骤 4:使用以下命令删除已停止的容器关联的卷
docker rm -v <container_id>
为什么要清理 Docker Volumes?
以下是清理docker卷的原因和优点:
-
释放空间:未使用的卷会占用大量磁盘空间,因此清理它们有助于释放宝贵的存储资源。
-
系统性能:删除不必要的卷可以减少混乱并确保 Docker 高效运行,从而提高系统性能。
-
资源管理:定期清理卷有助于更好地管理资源,防止过时或不相关的数据的积累。
-
安全性:旧卷可能包含敏感数据,如果管理不当或删除,可能会带来安全风险。清理卷有助于降低此类风险。