在使用 RockyLinux 运行容器时,如何有效管理容器中的数据是一个关键问题。默认情况下,容器内的文件系统是临时的——一旦容器被删除,所有数据也会随之消失。为了解决这个问题,我们需要使用 Docker 存储卷(Volumes) 或绑定挂载(Bind Mounts)来实现 容器数据持久化。本教程将手把手教你如何在 RockyLinux 上进行容器存储管理,即使是初学者也能轻松上手。
一、为什么需要容器存储管理?
容器本身是无状态的,这意味着每次重启或重建容器,其内部文件系统都会重置。如果你正在运行数据库、Web 应用或任何需要保存用户数据的服务,就必须将数据存储在容器外部。这就是 RockyLinux容器存储管理 的核心目的:确保数据安全、可迁移、可备份。
二、Docker 存储方式简介
Docker 提供了三种主要的数据存储方式:
Volume(存储卷):由 Docker 管理,存储在宿主机特定目录(通常为/var/lib/docker/volumes/),推荐用于生产环境。 Bind Mount(绑定挂载):将宿主机任意目录挂载到容器中,适合开发调试。 tmpfs Mount:仅适用于 Linux,数据保存在内存中,容器停止后自动清除(不适用于持久化)。
三、在 RockyLinux 上使用 Volume 实现数据持久化
下面我们将通过一个 MySQL 容器示例,演示如何使用 Volume 保存数据库文件。
步骤 1:安装 Docker(如果尚未安装)
该命令会创建一个名为 这里我们使用 你可以先在数据库中创建一张表,然后删除容器再重新运行一个新容器挂载同一个 Volume,你会发现数据依然存在。 如果你希望直接使用宿主机上的某个目录(例如 sudo dnf install -y dockersudo systemctl start dockersudo systemctl enable docker 步骤 2:创建命名 Volume
docker volume create mysql_data mysql_data
的 Volume,Docker 会自动将其存放在 /var/lib/docker/volumes/mysql_data/_data
目录下。步骤 3:运行容器并挂载 Volume
docker run -d \ --name my-mysql \ -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -v mysql_data:/var/lib/mysql \ mysql:8.0 -v mysql_data:/var/lib/mysql
将 Volume 挂载到容器内的 MySQL 数据目录。即使容器被删除,数据仍保留在 Volume 中。步骤 4:验证数据持久化
四、使用 Bind Mount 挂载本地目录
/home/user/myapp/data
),可以使用 Bind Mount:
这种方式便于直接访问和备份数据,但需注意文件权限问题。 以下是一些常用的存储管理命令: 通过本教程,你已经掌握了在 RockyLinux 上进行 容器存储管理 的核心方法。无论是使用 Docker Volume 还是 Bind Mount,都能有效实现 容器数据持久化,保障你的应用数据安全。建议在生产环境中优先使用命名 Volume,开发环境中可灵活使用 Bind Mount。 希望这篇 Rocky Linux容器教程 对你有所帮助!如有疑问,欢迎在评论区交流。mkdir -p /home/rocky/mysql-datadocker run -d \ --name my-mysql-bind \ -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -v /home/rocky/mysql-data:/var/lib/mysql \ mysql:8.0 五、常用管理命令
docker volume ls
查看 Volume 详情:docker volume inspect mysql_data
删除未使用的 Volume:docker volume prune
备份 Volume 数据(通过临时容器):
docker run --rm -v mysql_data:/volume -v $(pwd):/backup alpine \ tar czf /backup/mysql_data.tar.gz -C /volume . 六、总结
