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

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日

相关文章

  • linux系统 docker封装打包python程序

    有时候我们需要将我们的程序成为“热插拔”,也就是别人打开开关就运行,关闭就不运行,docker容器相当于一个盒子,这个盒子有个开关,我们只要让我们的程序一直运行在docker容器里面,即可实现。docker创建容器,容器里面需要配置我们的程序所需要的环境,还需要放我们的程序的镜像,让镜像一直在容器中运行,然后通过docker启动或者停止容器来实现“热插拔”,…

    Docker 2023年4月13日
    00
  • 入门Docker,你要下载什么?注册什么?

     此随笔根据前人经验改编并亲自实践。遇到问题提供出相应解决方法。 入门Docker,你要下载什么?注册什么?   Docker.app你肯定是要下载的!此教程应用于MAC系统PC不保证适用 Docker for mac,这个你肯定要下载:点我下载Docker for mac的社区免费版本 https://hub.docker.com/editions/com…

    Docker 2023年4月11日
    00
  • docker上传镜像到harbor镜像仓库

    1. 登陆docker服务器绑定hosts [root@docker ~]# vim /etc/hosts [root@docker ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost loc…

    Docker 2023年4月16日
    00
  • [Docker]如何批量删除镜像

    docker 使用一段时间之后,可能堆积很多用不着的,或者编译错误的镜像,一个一个删除就很麻烦,需要一个批量删除的方法,如下: docker rmi $(docker images | grep “provider” | awk ‘{print $3}’) 上面这条命令,可以删除所有名字中带 “provider” 关键字的镜像, grep 后面的参数,就是筛…

    Docker 2023年4月13日
    00
  • centos7 安装docker步骤详细介绍

    下面是“centos7安装docker步骤详细介绍”的完整攻略: 安装docker 安装必要的系统组件 在安装docker前,我们首先需要安装一些系统组件: sudo yum -y install yum-utils device-mapper-persistent-data lvm2 添加docker-ce的yum源 执行以下命令,为yum添加docker…

    Docker 2023年5月16日
    00
  • docker-compose安装及执行命令

    安装docker-compose可以通过官方文档提供的方式进行。在Linux系统中,可以通过以下命令来快速安装: sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" …

    Docker 2023年5月16日
    00
  • Docker容器简单部署nginx过程解析

    下面是详细的“Docker容器简单部署nginx过程解析”的攻略,包含两条示例说明。 概述 本攻略介绍了如何使用Docker部署nginx服务器。nginx是一款高性能的Web服务器,经常被用来作为反向代理和负载均衡器。Docker可以轻松地创建和管理独立的容器化应用,使得部署和维护变得更加简单。 本攻略将分为两个示例来演示如何在Docker中部署nginx…

    Docker 2023年5月16日
    00
  • idea整合docker快速部署springboot应用的详细过程

    下面是整合docker快速部署springboot应用的详细攻略。 准备工作 在开始之前,确保你已经安装好了以下软件或工具: Java开发环境 Maven Docker Docker Compose 步骤一:创建Spring Boot应用 首先,我们需要创建一个Spring Boot应用程序。这里提供一个快速创建Spring Boot应用程序的方法: 打开 …

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