大数跨境

Docker:第六天 - Docker Volumes

Docker:第六天 - Docker Volumes 索引目录
2025-01-15
1

Docker:服务容器和卷

Docker 为容器化应用程序提供了一个强大的框架,了解其卷管理系统是有效处理数据存储的关键。在本文中,我们将通过实际示例详细探讨 Docker 如何管理卷和服务容器。

什么是 Docker 卷?

Docker 中的卷用于保存 Docker 容器生成和使用的数据。与依赖主机文件系统的绑定挂载不同,卷由 Docker 直接管理,从而提供清晰的抽象并与容器生态系统更好地集成。

Docker Volumes的主要特点:

  • 存储位置:卷存储在由 Docker 管理的主机文件系统的一部分中(例如/var/lib/docker/volumes/)。

  • 由 Docker 管理:容器创建和管理卷,提供无缝体验。

  • 弹性:即使容器被移除后卷仍然存在,从而确保数据的持久性。

  • 易于使用:可以使用 Docker 命令轻松创建和操作卷。

使用卷

创建卷

要创建新卷,请使用以下命令:

docker volume create <NAME>

例如,创建一个名为的卷mysql-db

docker volume create mysql-db

上市卷

要列出所有可用卷,请运行:

docker volume ls

此命令显示 Docker 管理的所有卷。

检查卷

要查看有关特定卷的详细信息,请使用:

docker volume inspect <NAME>

例如:

docker volume inspect mysql-db

删除卷

要删除卷,请使用:

docker volume rm <NAME>

注意:当使用卷的容器被销毁时,卷不会被删除。您需要明确删除它们。

在容器中使用卷

拉取 MySQL 镜像

首先,拉取 MySQL Docker 镜像:

docker pull mysql

使用匿名卷运行 MySQL

要运行具有匿名卷的 MySQL 容器:

docker container run -d --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=True mysql

这里-e MYSQL_ALLOW_EMPTY_PASSWORD=True设置MySQL容器允许空的root密码。

使用命名卷运行 MySQL

要运行具有命名卷的 MySQL 容器,请指定源和目标:

docker container run -d --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=True --mount source=mysql-db,target=/var/lib/mysql mysql

或者,您可以使用该-v标志:

docker container run -d --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=True -v mysql-db:/var/lib/mysql mysql

在此示例中:

  • source=mysql-db指定卷名称。

  • target=/var/lib/mysql指定容器内卷的挂载目录。

实践中的卷管理

  1. 创建卷

docker volume create my-data

此命令创建一个名为 的新卷my-data

  1. 使用卷运行容器

docker container run -d --name my-app -v my-data:/app/data my-image

这里,my-data卷被安装到/app/data容器内部。

  1. 检查体积

docker volume inspect my-data
  1. 删除卷

docker volume rm my-data

此命令删除该my-data卷。

使用 Docker 卷的优点

  • 数据持久性:即使容器被销毁后,卷也能确保数据保持完整。

  • 易于共享:多个容器可以共享相同的容量,使其成为协作工作流程的理想选择。

  • 性能:与绑定挂载相比,卷提供更好的 I/O 性能。

  • 安全性:卷由 Docker 管理,提供主机文件系统的抽象层。


【声明】内容源于网络
0
0
索引目录
索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
内容 444
粉丝 0
索引目录 索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
总阅读12
粉丝0
内容444