使用 CLI 管理 Docker 卷

如果您想在多个 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

创建 Docker 卷

2. 使用容器挂载卷

sudo docker run -it -v <volume-path-in-local-machine>:<dest-path-in-container> <image-name>
 ```

![使用容器安装卷](https://media.geeksforgeeks.org/wp-content/uploads/20201029151619/Screenshotfrom20201029151603-660x47.png)

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

![移动到目标目录](https://media.geeksforgeeks.org/wp-content/uploads/20201029151900/Screenshotfrom20201029151837-660x104.png)

### 3. 列出所有 Docker 卷

*   ****您可以使用 Docker Volume ls****命令列出所有 Docker 卷。

```bash
sudo docker volume ls  

列出所有 Docker 卷

4. 检查Docker卷

  • 您可以使用 Volume Inspect 命令获取 Docker Volumes 的详细信息。
sudo docker volume inspect <volume-name>

检查 Docker 卷

如何删除特定的 Docker 卷?

要在 docker 中删除特定卷,请执行以下 dockervolumerm 命令并指定卷名称。

sudo docker volume rm <volume-name>

删除特定的 Docker 卷

如何删除所有 Docker 卷?

以下步骤指导您如何删除所有 docker 卷:

步骤 1:删除所有 Docker 卷

  • 要一次性删除所有 Docker 卷,可以使用以下命令。请注意,在删除 Docker 卷之前,需要确保它尚未挂载到任何容器。
sudo docker volume rm $(sudo docker volume ls -q)

删除所有 Docker 卷

第 2 步:验证已删除的卷

  • 要验证所有卷是否都已被删除,您可以使用卷列表命令。
sudo docker volume ls

验证删除

Docker Volumes 的优势

Docker 卷的优点如下:

  • 持久性:即使 docker 中重新创建容器,附加到容器的卷仍会存在,因此应用程序的数据不会丢失,并且借助 docker 卷,您可以部署和维护状态完整的应用程序,例如数据库、配置文件和日志。

  • 隔离性:如果在docker中部署了两个状态完整的应用程序,那么我们需要将docker卷附加到这两个应用程序容器上,在这种情况下,docker可以确保两个卷之间不会发生冲突,并且彼此隔离。

  • 可移植性:附加到 Docker 卷的卷可以从一台主机移植到另一台主机,或从一个环境移植到另一个环境。这使得在开发、准备和生产环境之间轻松进行数据迁移变得轻而易举,而无需修改容器镜像。

  • 动态数据管理:在容器的整个生命周期中,Docker 卷实现了动态数据管理。无需更改容器本身即可添加、编辑和删除数据,使数据处理更加灵活和动态。

如何清理 docker 卷?

以下步骤指导您如何清理 docker 卷:

步骤 1:首先使用以下命令列出所有 docker 卷

docker volume ls

列出 Docker 卷

步骤 2:使用以下命令使用 docker volume prune 删除所有未使用的卷

docker volume prune

docker 卷修剪

步骤 3:要删除 docker 中的特定卷,请使用 dockervolumerm 命令指定卷名称,如下所示

docker volume rm <volume_name>

步骤 4:使用以下命令删除已停止的容器关联的卷

docker rm -v <container_id>

为什么要清理 Docker Volumes?

以下是清理docker卷的原因和优点:

  • 释放空间:未使用的卷会占用大量磁盘空间,因此清理它们有助于释放宝贵的存储资源。

  • 系统性能:删除不必要的卷可以减少混乱并确保 Docker 高效运行,从而提高系统性能。

  • 资源管理:定期清理卷有助于更好地管理资源,防止过时或不相关的数据的积累。

  • 安全性:旧卷可能包含敏感数据,如果管理不当或删除,可能会带来安全风险。清理卷有助于降低此类风险。

Leave a Comment