docker<容器数据卷-v>对容器内数据持久化详解(备份)

yizhihongxing

Docker容器数据卷(v)对容器内数据持久化详解(备份)

什么是Docker容器数据卷

Docker容器数据卷是一个可供容器使用的目录,位于容器的文件系统之外。容器可以读取和写入数据卷中的文件,而无需将数据复制到容器本身的文件系统中。这使得数据卷允许容器之间共享数据,同时也可以让容器在不删除其数据卷的情况下被删除和重新创建。

创建数据卷

使用以下命令创建一个名为 mydata 的数据卷:

docker volume create mydata

可以通过以下命令查看已经创建的数据卷:

docker volume ls

绑定数据卷

将数据卷绑定到容器中的目录可以使用 -v 选项。例如,将名为 mydata 的数据卷绑定到容器 /app/data 目录:

docker run -d -v mydata:/app/data myimage

在运行时,如果容器向 /app/data 目录写入数据,这些数据将被存储在名为 mydata 的数据卷中。当容器被删除后,数据卷将保留并可以用于新容器。

备份数据卷

可以使用以下命令备份数据卷:

docker run --rm -v mydata:/backup -v /local:/local alpine tar -czf /backup/data.tar.gz /app/data

上面的命令将名为 mydata 的数据卷中的 /app/data 目录打包成 data.tar.gz 文件,并将其保存在 /local 目录中。这个命令使用的容器是 alpine 容器,它具有 tar 命令。

恢复数据卷

可以使用以下命令恢复数据卷:

docker run --rm -v mydata:/backup -v /local:/local alpine tar -xzf /backup/data.tar.gz -C /app/data

上面的命令将名为 mydata 的数据卷中的 /app/data 目录从 /local 目录中的 data.tar.gz 文件中解压缩出来。

示例

以下示例演示了如何创建、绑定、备份和恢复数据卷。

  1. 创建一个名为 mydata 的数据卷:
docker volume create mydata
  1. 创建一个名为 mycontainer 的容器,并将名为 mydata 的数据卷绑定到容器中的 /app/data 目录:
docker run -d -v mydata:/app/data myimage
  1. 向容器中的 /app/data 目录写入一些数据:
docker exec mycontainer sh -c 'echo "hello world" > /app/data/hello.txt'
  1. 备份名为 mydata 的数据卷中的 /app/data 目录,并将其保存为 /local/data.tar.gz 文件:
docker run --rm -v mydata:/backup -v /local:/local alpine tar -czf /backup/data.tar.gz /app/data
  1. 删除容器:
docker rm -f mycontainer
  1. 创建一个新容器,并将名为 mydata 的数据卷绑定到容器中的 /app/data 目录:
docker run -d -v mydata:/app/data myimage
  1. 恢复名为 mydata 的数据卷中的 /app/data 目录:
docker run --rm -v mydata:/backup -v /local:/local alpine tar -xzf /backup/data.tar.gz -C /app/data
  1. 验证数据是否已经恢复:
docker exec mycontainer cat /app/data/hello.txt

输出结果为:

hello world

总结

使用 Docker 容器数据卷可以将容器内的数据持久化,并且可以备份和恢复数据卷中的数据。这使得在容器被删除或重新创建时,仍然可以保存数据。在实现容器化应用时,容器数据卷是非常有用的一种技术。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker<容器数据卷-v>对容器内数据持久化详解(备份) - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • docker启动容器报错 Unknown runtime specified nvidia.

    问题复现 当我启动一个容器时,运行以下命令: docker run –runtime=nvidia 。。。。 后面一部分命令没写出来,此时报错的信息如下: docker: Error response from daemon: Unknown runtime specified nvidia. See ‘docker run –help’. 报错的信息显…

    Docker 2023年4月12日
    00
  • Ubuntu下安装Docker教程

    Ubuntu下安装Docker教程 1. 准备工作 在 Ubuntu 上安装 Docker 前需要做的准备工作如下: 确认你的 Ubuntu 系统版本为 Xenial 16.04 或更高版本。 确认你的 Ubuntu 内核版本为 3.10 或更高版本。 确认你的 Ubuntu 系统上已经安装了 curl 工具。 确认你的 Ubuntu 系统上没有安装过老版本…

    Docker 2023年5月16日
    00
  • Rancher 系列文章-在腾讯云的 K3S 上安装高可用 Rancher 集群

    开篇 ? 引言: 三人行必有我师焉 知识共享,天下为公 《K3s 系列文章》 《Rancher 系列文章》 方案 在腾讯云的 K3S 上安装 Rancher 方案目标 高可用 3 台 master 的 k3s 集群 高可用模式的 rancher 数据备份 rancher 数据备份到 腾讯云对象存储 cos 安全加密 不能存在 http,全部是 https 面…

    2023年4月8日
    00
  • HTTPS基础原理和配置 – 1

    近期又碰到了SSL相关的事情, 就心血来潮开个新专题 – 《HTTPS基础原理和配置》 本文是第一篇文章, 主要介绍SSL TLS加密协议的相关内容。 加密协议历史概要 SSL TLS加密协议其实并没有很长的历史,1995年网景发布了SSL v2.0,这也是web加密的开始。这使得电子商务领域,人们可以在线提交密码和信用卡,并且至少是相当安全的。 SSLv3…

    2023年4月9日
    00
  • 新手必看docker安装jenkins详细教程

    新手必看docker安装jenkins详细教程 简介 本文主要介绍了如何使用docker在本地部署jenkins,方便开发者学习和使用jenkins进行持续集成、构建和部署等操作。文中将分别介绍windows和macOS的安装步骤,同时提供示例说明。 前置条件 操作系统为windows或macOS 安装docker 步骤 Windows安装jenkins 打…

    Docker 2023年5月15日
    00
  • 在windows下的安装Docker的教程

    安装Docker需要以下步骤: 1. 下载Docker安装包 在Windows下安装Docker需要下载Docker Desktop应用程序。你可以在Docker官网上下载Docker Desktop最新安装包。 2. 安装Docker 下载安装包之后,双击打开进行安装。一般情况下,Docker安装程序会自动检测系统配置是否支持安装Docker Deskto…

    Docker 2023年5月15日
    00
  • CentOS6.8下安装Docker

    在CentOS6.8下安装Docker 系统版本 [root@bogon yum.repos.d]# uname -a Linux bogon 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [root@bogon yum.rep…

    Docker 2023年4月13日
    00
  • docker-管理镜像常用命令

    1. docker管理镜像常用命令 指令 说明 docker   run     [容器 CONTAINER ID] 创建一个新的容器并运行一个命令 docker   start   [容器 CONTAINER ID] 启动一个或多个已经被停止的容器 docker  stop    [容器 CONTAINER ID] 停止一个运行中的容器 docker  r…

    Docker 2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部