docker快照备份回滚

1. 安装系统

1.1 vm安装Ubuntu

参考:https://blog.csdn.net/u010308917/article/details/125157774

1.2 其他操作

添加自定义物理卷
–待补充–

1.2.1 查询可用物理卷

fdisk -l

输出如下
Disk /dev/loop0: 73.9 MiB, 77492224 bytes, 151352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/loop1: 180.94 MiB, 189726720 bytes, 370560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/loop2: 40.86 MiB, 42840064 bytes, 83672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/sda: 200 GiB, 214748364800 bytes, 419430400 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: CBA6DFE0-3C73-4BAD-8A3F-1A84C07DED81
Device       Start       End   Sectors  Size Type
/dev/sda1     2048      4095      2048    1M BIOS boot
/dev/sda2     4096   4198399   4194304    2G Linux filesystem
/dev/sda3  4198400 419428351 415229952  198G Linux filesystem
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

新增 /dev/sdb 20g物理卷未被使用

1.2.2

fdisk /dev/sdb

分区

Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-419430399, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-419430399, default 419430399):

Created a new partition 1 of type ‘Linux’ and of size 200 GiB.

设置类型

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition ‘Linux’ to ‘Linux LVM’.

保存

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

查看分配的卷

fdisk -l

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 41943039 41940992  20G 8e Linux LVMDisk /dev/mapper/ubuntu--vg-ubuntu--lv: 99 GiB, 106296246272 bytes, 207609856 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

已经被分配 sdb1

1.2.3 docker安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
// 修改driver未zfs
/etc/docker/daemon.json

{"storage-driver": "zfs"
}

1.2.4

2. zfs

2.1 查询

zpool list

在这里插入图片描述

2.2 创建

创建docker的挂载物理卷

zpool create -f mine-docker -m /var/lib/docker /dev/sdb1

注: /var/lib/docker 必须不存在,由该命令创建

创建docker快照

zfs snapshot mine-docker@start

2.3 回滚

zfs rollback docker@start

2.4 删除

zpool destroy mine-docker@start

2.5 比对

3 btrfs

使用方式与zfs有所不同,需要使用subvolume创建Btrfs文件系统(专用目录)

3.1 subvolume

3.1.1 创建

btrfs subvolume create mine

3.1.2 删除

btrfs subvolume del mine

3.2 前置操作

创建btrfs

mkfs.btrfs -f /dev/sdb

挂载

mount -t btrfs /dev/sdb /var/lib/docker

安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

修改docker驱动

vim /etc/docker/daemon.json
{"storage-driver": "btrfs"
}

docker info查看
在这里插入图片描述

4. snaper (推荐)

https://zhuanlan.zhihu.com/p/31082518

前置

fdisk -l 查看

将sdb1物理卷格式为btrfs

mkfs.btrfs -f /dev/sdb1 

手动创建要挂载的文件夹

mkdir /var/lib/docker

将btrfs挂载sdb1

mount /dev/sdb1 /var/lib/docker 

创建快照配置

snapper -c mine create-config /var/lib/docker  

查询所有快照配置

snapper list-configs 

删除快照配置

snapper -c <配置名称> delete-config

snapper -c mine delete-config 

查询所有

snapper -c <配置名称> list
查询mine下有那些快照

snapper -c mine list 

创建快照

snapper -c <配置名称> create

snapper -c mine create  -p 

-p 会打印快照编号

查询快照

snapper -c <配置名称> list

snapper -c mine list 

删除快照

snapper -c <配置名称> delete <快照 1 编号> [<快照 2 编号>…]

snapper -c mine delete 1

比对

在/var/lib/docker

touch a.txt

snapper -c <配置名称> status <快照 1 编号>…<快照 2 编号>


snapper -c mine status 1..2

在这里插入图片描述

回滚

snapper -c <配置名称> undochange <快照编号>…<0>

# 由4回退到3
snapper -c mine undochange  3..4

5 总结

lvm: 使用起来复杂,且备份占用内存,不太推荐使用
zfs(不推荐): 使用简单, 不占用内存,单独做文件夹得快照可以使用,使用docker得备份不推荐使用,docker启动会自动识别驱动器为zfs,docker-compose的回滚会直接出现容器找不到,docker直接挂掉
btrfs(不推荐): 问题有点多,没研究下去,跟zfs一样,docker会自动识别驱动器
snapper(推荐): zfs和btrfs都是通过操作snapper去实现的该功能,docker不会指定文件目录的驱动器,多次测试稳定的docker回滚,上手快,命令简单易使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/729196.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

耐腐蚀PFA消解管可配四氟回流盖适配海能莱伯泰科全自动石墨消解仪

PFA消解管&#xff0c;也叫PFA消化管、特氟龙消解管、耐高温消解杯等&#xff0c;应用于气相、液相、等离子光谱质谱、原子吸收、原子荧光等化学分析方法的样品前处理&#xff0c;可消解重金属、农残、食品、淤泥、稀土、水产品、有机物等。 PFA消解管 PFA消解管可耐强酸、强碱…

基于单片机的红外测距仪设计

目 录 摘 要 I Abstract II 引 言 1 1 控制系统设计 3 1.1 主控制器选择 3 1.2 项目总体设计 3 2 项目硬件设计 5 2.1 单片机控制模块 5 2.2 测距模块设计 9 2.3 液晶显示模块 10 2.4 报警模块 11 3 项目软件设计 12 3.1 软件开发环境 12 3.2 系统主程序设计 13 3.3 LCD显示程…

Spring Boot 生成与解析Jwt

Spring Boot 生成与解析Jwt Maven依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency>生成&解析 package yang;import io.jsonwebtoken.Claims…

收银系统源码-智慧新零售2.0小助手全新升级!

欢迎后台私信&#xff0c;测试体验&#xff01; 新零售助手是智慧新零售系统的移动管理端&#xff0c;尤其针对商户/门店日常经营必不可少的一环。智慧新零售2.0版小助手也进行了全新升级&#xff0c;使用起来更简单&#xff0c;页面更美观。小助手采用微信小程序登陆&#xf…

第六讲:什么是期货合约、永续合约

什么是期货合约 期货合约 &#xff1a; 是买方和卖方的一个约定&#xff0c;在将来的某个时间&#xff0c;以某个价格对某个货物进行交易 比如农民会种植农作物&#xff0c;粮商收购农作物。农民会和粮商 签订期货合约 卖货的一方&#xff0c;属于做空单。买货的一方&#x…

SQL27 查看不同年龄段的用户明细

题目描述 题目&#xff1a;现在运营想要将用户划分为20岁以下&#xff0c;20-24岁&#xff0c;25岁及以上三个年龄段&#xff0c;分别查看不同年龄段用户的明细情况&#xff0c;请取出相应数据。&#xff08;注&#xff1a;若年龄为空请返回其他。&#xff09; 示例&#xff…

OceanBase社区版单节点安装搭建(Docker)

OceanBase社区版单节点安装搭建&#xff08;Docker&#xff09; 文章目录 OceanBase社区版单节点安装搭建&#xff08;Docker&#xff09;一、环境检查及Docker配置1.1 安装docker1.2 配置docker镜像源 二、OB镜像下载三、obd部署单节点数据库四、创建业务租户、数据库、表4.1 …

vsto给excel赋值最快的方式是什么

在 VSTO (Visual Studio Tools for Office) 中&#xff0c;给 Excel 赋值最快的方式通常是通过使用数组进行批量操作。直接将数据数组赋值给 Excel 范围&#xff0c;而不是逐个单元格地进行操作&#xff0c;可以显著提高性能。以下是一个简单的示例&#xff1a; csharp // 假设…

Git 掌握

目录 一、前言 二、centos安装Git 三、Git基本操作 (1) 创建Git本地仓库 (2) 配置Git (3) 认识工作区&#xff0c;暂存区&#xff0c;版本库 四、添加文件 五、查看.git文件 六、修改文件 七、版本回退 八、撤销修改 (1) 场景一 对于还没有add的代码 (2) 场景二 已…

遍历字典修改值时RuntimeError: dictionary changed size during iteration

原始代码&#xff1a; 需求&#xff1a;遍历data字典&#xff0c;将值为‘无’的键值对进行删除 for key, value in data.items():if value 无:data.pop(key)else:pass报错&#xff1a;RuntimeError: dictionary changed size during iteration 原因&#xff1a;字典不支持在…

基于springboot+vue实现民宿管理系统项目【项目源码+论文说明】计算机毕业设计

基于springbootvue实现民宿管理系统演示 摘要 伴随着我国旅游业的快速发展&#xff0c;民宿已成为最受欢迎的住宿方式之一。民宿借助互联网和移动设备的发展&#xff0c;展现出强大的生命力和市场潜力。民宿主要通过各种平台如携程、去哪儿、淘宝等在网络上销售线下住宿服务&a…

模块自动导入

看的短视频&#xff0c;自己试了下&#xff0c;发现挺好用的&#xff1a;模块自动导入【渡一教育】_哔哩哔哩_bilibili 1. 安装插件 npm i unplugin-auto-import 2. 在vite配置文件&#xff08;vite.config.ts&#xff09;中进行配置&#xff0c; 配置完场后&#xff0c;需要重…

ChatGPT原理与应用开发【文末送书-33】

文章目录 ChatGPT原理应用开发开发指南 ChatGPT原理与应用开发【文末送书-33】 ChatGPT ChatGPT 是一款由 OpenAI 开发的大型语言模型聊天机器人&#xff0c;它基于 GPT-3.5 和 ChatGPT 3.5 模型构建&#xff0c;并采用了大量的训练数据进行训练。ChatGPT 能够生成类似人类的文…

MySQL常见的索引类型介绍

我将为您详细讲解 MySQL 中常见的索引类型&#xff0c;以及它们的使用场景、特点、区别和优势。索引是提高数据库查询性能的关键工具&#xff0c;它可以加速数据检索速度&#xff0c;减少服务器的负担。在 MySQL 中&#xff0c;索引类型主要包括 B-Tree 索引、哈希索引、全文索…

maven子项目怎么不使用父项目提供的编译插件

如果你不希望子项目使用父项目提供的编译插件的配置&#xff0c;你可以通过在子项目的pom.xml文件中显式地覆盖或重写父项目的配置来实现。 以下是一个示例&#xff0c;展示了如何在子项目中覆盖父项目的maven-compiler-plugin插件的配置&#xff1a;父项目的pom.xml&#xff1…

从数据处理到3D PDF生成:交互式3D PDF生成引擎HOOPS Publish的工作原理

在当今数字化时代&#xff0c;3D技术在各个行业中扮演着重要角色&#xff0c;从制造业到医疗保健&#xff0c;再到建筑设计。为了更好地共享、演示和交互展示3D模型数据&#xff0c;HOOPS Publish作为一款强大的3D引擎&#xff0c;专门用于生成交互式的3D PDF文件。本文将深入探…

Linux平台下智能入侵检测系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 入侵检测与Snort概述 3 1.1入侵检测系统概念 3 1.2 Snort系统 3 1.3 Snort的特点 3 1.4 Snort规则 4 1.4.1 规则的结构 4 1.4.2 规则头部 5 1.4.3 规则选项 6 1.5 本章小结 6 2 需求分析与总体设计 7 2.1 必要功能需求分析 7 2.2 数据库的…

智能研发新纪元:探索2024年AI辅助研发的发展与趋势

随着人工智能&#xff08;AI&#xff09;技术的高速发展与创新&#xff0c;我们迎来了一个全新的时代&#xff0c;尤其是在研发领域。AI正以前所未有的速度和效率推动着科技的突破。2024年&#xff0c;AI辅助研发成为走在时代前端的核心竞争力。在这篇文章中&#xff0c;我们将…

【Javaweb】【瑞吉外卖】登录功能plus--拦截器filterinterceptors实现

上手第二天&#xff0c;做到登录拦截器部分 需求&#xff1a;完成目标是&#xff0c;只有在登录的情况下才想让其访问后端&#xff0c;没有登录禁止访问&#xff0c;并且让其跳转。 这里有一个比较好的思想是&#xff1a;后端程序要主要需要考虑的是拦截接口&#xff0c;不能让…

理德外汇:欧银连续四次维持利率欧元短线下挫20点

欧洲央行连续第四次维持三大利率不变&#xff0c;符合市场预期。决议公布后&#xff0c;欧元(1.0948, 0.0000, 0.00%)兑美元EUR/USD短线下挫20点&#xff0c;最低至1.0874。 欧洲央行表示&#xff0c;通胀已进一步下降。预计2024年通胀率为2.3%&#xff0c;去年12月预期为2.7%。…