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

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

在使用 Ubuntu容器存储管理 的过程中,很多初学者常常面临一个问题:容器一旦被删除,里面的数据也会随之消失。这显然不适合生产环境或需要长期保存数据的应用场景。本文将手把手教你如何在 Ubuntu 系统中通过 Docker 实现Linux容器数据持久化,让你轻松掌握 Docker存储卷 的使用方法,并完成 Ubuntu Docker存储配置

为什么需要容器存储管理?

Docker 容器默认使用的是临时文件系统(tmpfs 或 overlay),这意味着容器重启或删除后,所有写入的数据都会丢失。为了解决这个问题,Docker 提供了多种存储机制,其中最常用的就是 Volume(卷)Bind Mount(绑定挂载)

Ubuntu容器存储管理指南(Docker存储卷与数据持久化实战教程) Ubuntu容器存储管理 Docker存储卷 Linux容器数据持久化 Ubuntu Docker存储配置 第1张

准备工作:安装 Docker

如果你还没有在 Ubuntu 上安装 Docker,请先执行以下命令:

# 更新软件包索引sudo apt update# 安装必要依赖sudo apt install -y ca-certificates curl gnupg lsb-release# 添加 Docker 官方 GPG 密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 添加 Docker 仓库echo \  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 安装 Docker Enginesudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io# 将当前用户加入 docker 组(避免每次用 sudo)sudo usermod -aG docker $USER# 重新登录或执行以下命令使组生效newgrp docker

方法一:使用 Docker Volume(推荐)

Docker Volume 是由 Docker 管理的存储方式,独立于容器生命周期,适合生产环境。

1. 创建一个命名卷:

docker volume create my_volume

2. 查看卷信息:

docker volume inspect my_volume

3. 启动容器并挂载卷:

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

上面的命令将 my_volume 挂载到 Nginx 容器的网页根目录。即使删除容器,my_volume 中的数据依然保留。

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

Bind Mount 直接将主机上的某个目录挂载到容器中,适合开发调试。

# 在主机创建目录mkdir -p ~/my_web_data# 写入测试文件echo "

Hello from Ubuntu Host!

" > ~/my_web_data/index.html# 启动容器并挂载该目录docker run -d \ --name my_nginx_bind \ -v ~/my_web_data:/usr/share/nginx/html:ro \ nginx:latest

注意::ro 表示只读挂载,防止容器修改主机文件。如需读写权限,可省略 :ro

验证数据持久化

现在我们来测试数据是否真的持久化:

# 删除容器docker rm -f my_nginx# 重新创建新容器,挂载同一个卷docker run -d \  --name my_nginx_new \  -v my_volume:/usr/share/nginx/html \  nginx:latest# 访问 http://localhost,你会发现之前写入的数据还在!

清理无用卷(可选)

长时间使用后,可能会积累大量未使用的卷,可以定期清理:

# 列出所有卷docker volume ls# 删除指定卷(确保没有容器在使用)docker volume rm my_volume# 删除所有未使用的卷docker volume prune

总结

通过本教程,你已经掌握了在 Ubuntu 系统中进行 Ubuntu容器存储管理 的核心技能。无论是使用 Docker Volume 还是 Bind Mount,都能有效实现 Linux容器数据持久化。记住:对于生产环境,优先使用 Volume;对于开发调试,Bind Mount 更加灵活。合理配置 Ubuntu Docker存储配置,能让你的容器应用更加稳定可靠。

小贴士:始终备份重要数据!即使使用了持久化存储,也建议定期将关键卷数据备份到远程服务器或云存储。