当前位置:首页 > RockyLinux > 正文

RockyLinux容器存储卷管理(Docker存储卷与持久化数据实战指南)

在使用 RockyLinux 运行容器化应用时,如何有效管理数据是一个关键问题。容器本身是临时性的,一旦容器被删除,其内部的数据也会随之消失。为了解决这个问题,Docker 存储卷(Volumes)应运而生。本文将手把手教你如何在 RockyLinux 系统中进行容器存储卷管理,即使你是刚入门的小白也能轻松上手。

什么是容器存储卷?

容器存储卷是 Docker 提供的一种持久化存储机制,它独立于容器生命周期存在,即使容器被删除,卷中的数据依然保留。这对于数据库、日志文件、用户上传内容等需要长期保存的数据尤为重要。

RockyLinux容器存储卷管理(Docker存储卷与持久化数据实战指南) RockyLinux容器存储卷管理 Docker存储卷 Rocky Linux持久化存储 容器数据卷 第1张

前提条件

  • 一台已安装 RockyLinux 的服务器(建议使用 RockyLinux 8 或 9)
  • 已安装 Docker 引擎
  • 具备基本的命令行操作能力

如果你尚未安装 Docker,可以运行以下命令:

sudo dnf install -y yum-utilssudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo dnf install -y docker-ce docker-ce-cli containerd.iosudo systemctl start dockersudo systemctl enable docker  

创建和管理 Docker 存储卷

1. 创建一个命名卷

命名卷是最常用的卷类型,由 Docker 管理其存储位置。

docker volume create my_volume  

2. 查看所有卷

docker volume ls  

输出示例:

DRIVER    VOLUME NAMElocal     my_volume  

3. 查看卷详细信息

docker volume inspect my_volume  

这会显示卷的挂载路径(通常位于 /var/lib/docker/volumes/my_volume/_data)。

在容器中使用存储卷

启动容器时,使用 -v 参数挂载卷:

docker run -d \  --name my_nginx \  -v my_volume:/usr/share/nginx/html \  nginx:latest  

上述命令将 my_volume 挂载到 Nginx 容器的网页根目录。任何写入该目录的文件都会持久保存在卷中。

验证数据持久性

我们来测试一下数据是否真的持久化:

echo "Hello from RockyLinux!" > /var/lib/docker/volumes/my_volume/_data/index.htmldocker stop my_nginxdocker rm my_nginxdocker run -d --name my_nginx2 -v my_volume:/usr/share/nginx/html nginx:latest  

访问新容器的 IP 地址,你仍能看到 “Hello from RockyLinux!”,说明数据成功保留。

删除存储卷

当不再需要某个卷时,可安全删除:

docker volume rm my_volume  

注意:只有未被任何容器使用的卷才能被删除。

小贴士:绑定挂载 vs 命名卷

除了命名卷,Docker 还支持绑定挂载(Bind Mounts),即直接挂载主机目录:

docker run -v /host/path:/container/path ...  

但命名卷更安全、可移植性更强,推荐在生产环境中使用命名卷进行Rocky Linux持久化存储

总结

通过本教程,你已经掌握了在 RockyLinux 中进行容器数据卷管理的核心技能。合理使用 Docker 卷,不仅能保障数据安全,还能提升应用的可靠性和可维护性。无论你是部署 MySQL、PostgreSQL,还是 Web 应用,存储卷都是不可或缺的工具。

赶快动手试试吧!如有疑问,欢迎在评论区交流。