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

Ubuntu容器存储卷管理(Docker数据卷与持久化存储完全指南)

在使用 Docker 运行 Ubuntu 容器时,我们经常会遇到一个问题:容器一旦被删除,其中的数据也会随之消失。为了解决这个问题,Docker 提供了“存储卷”(Volume)机制,实现容器持久化存储。本教程将手把手教你如何在 Ubuntu 系统中管理 Docker 容器的存储卷,即使是零基础的小白也能轻松上手。

什么是 Docker 存储卷?

Docker 存储卷是 Docker 用来持久化数据的一种方式。它独立于容器生命周期存在,即使容器被删除,卷中的数据依然保留。这对于数据库、配置文件、日志等需要长期保存的数据非常关键。

Ubuntu容器存储卷管理(Docker数据卷与持久化存储完全指南) Ubuntu容器存储卷  Docker数据卷管理 容器持久化存储 Ubuntu Docker教程 第1张

准备工作:安装 Docker

首先,确保你的 Ubuntu 系统已安装 Docker。如果尚未安装,请运行以下命令:

sudo apt updatesudo apt install -y docker.iosudo systemctl start dockersudo systemctl enable docker  

安装完成后,可通过 docker --version 验证是否成功。

方法一:使用命名卷(Named Volume)

这是最推荐的方式,由 Docker 自动管理存储位置。

1. 创建一个名为 mydata 的卷:

docker volume create mydata  

2. 启动 Ubuntu 容器并挂载该卷到 /data 目录:

docker run -it --name ubuntu-container \  -v mydata:/data \  ubuntu:latest /bin/bash  

现在,你在容器内的 /data 目录下创建的任何文件都会被持久化保存在 mydata 卷中。

方法二:绑定挂载(Bind Mount)

这种方式直接将宿主机的某个目录挂载到容器中,适合开发调试。

mkdir -p ~/myappdocker run -it --name ubuntu-bind \  -v ~/myapp:/app \  ubuntu:latest /bin/bash  

此时,宿主机的 ~/myapp 目录与容器内的 /app 目录完全同步。

查看和管理存储卷

你可以使用以下命令来管理 Docker 卷:

  • docker volume ls —— 列出所有卷
  • docker volume inspect mydata —— 查看卷详细信息
  • docker volume rm mydata —— 删除指定卷(需先停止使用该卷的容器)

实战示例:持久化 MySQL 数据

假设你想运行一个 MySQL 容器,并确保数据库数据不会因容器重启而丢失:

docker volume create mysql-datadocker run -d --name mysql-db \  -e MYSQL_ROOT_PASSWORD=123456 \  -v mysql-data:/var/lib/mysql \  mysql:8.0  

这样,即使你删除并重新创建 MySQL 容器,只要挂载同一个 mysql-data 卷,数据就会完整保留。

总结

通过本教程,你已经掌握了在 Ubuntu 系统中使用 Docker 存储卷进行Ubuntu容器存储卷管理的核心技能。无论是使用命名卷还是绑定挂载,都能有效实现Docker数据卷管理容器持久化存储。希望这篇Ubuntu Docker教程能帮助你构建更稳定、可靠的应用环境!

提示:生产环境中建议优先使用命名卷,因其由 Docker 统一管理,路径更安全且便于迁移。