docker挂载数据卷

一、Docker 容器的数据卷

1、什么是数据卷?

数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或者多个容器提供访问,数据卷 设计的目的,在于数据的永久存储,它完全独立于容器的生存周期,因此,docker 不会在容器删除时删 除其挂载的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理,同一个数据卷可 以只支持多个容器的访问。

2、 数据卷的特点:

1.数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会被拷贝到新初始 化的数据卷中
2.数据卷可以在容器之间共享和重用
3.可以对数据卷里的内容直接进行修改
4.数据卷的变化不会影像镜像的更新
5.卷会一直存在,即使挂载数据卷的容器已经被删除

二、为容器添加数据卷

1、添加卷
docker run -v /datavolume:/data -it centos /bin/bash
docker run --name volume -v ~/datavolume:/data -itd centos /bin/bash

注:~/datavolume 为宿主机用户目录下的datavolumn目录,/data 为 docker 启动的 volume 容器的里的目录 这样在宿主机的/datavolume 目录下创建的数据就会同步到容器的/data 目录下

2、数据卷添加访问权限
docker run --name volume1 -v ~/datavolume1:/data:ro -itd centos /bin/bash 

添加只读权限之后在 docker 容器的/data 目录下就不能在创建文件了,为只读权限;在宿主机下的 /datavolume1 下可以创建东西

进入到新创建的容器

docker exec -it data-volume2 /bin/bash 

查看容器的/datavolume6 目录下是否新创建了 lucky.txt 文件

cd /datavolume6 

可以看见有刚才在上一个容器创建的文件 lucky.txt

三、数据备份和还原

1、数据备份
docker run --volumes-from [container name] -v $(pwd):/backup centos tar czvf /backup/backup.tar [container data volume]

例子:

docker run --volumes-from data-volume2 -v /root/backup:/backup --name datavolume-copy centos tar zcvf /backup/data-volume2.tar.gz /datavolume6
2、数据还原
docker run --volumes-from [container name] -v $(pwd):/backup centos tar xzvf /backup/backup.tar.gz [container data volume]

例:

docker exec -it data-volume2 /bin/bash 
cd /datavolume6 
rm -rf lucky.txt 
docker run --volumes-from data-volume2 -v /root/backup/:/backup centos tar zxvf /backup/data-volume2.tar.gz -C /datavolume6 
docker exec -it data-volum2 /bin/bash cd /datavolum6 

可以看到还原后的数据

四、dockerfile挂载

dockerfile 指令:
volume[“/data”]

cat dockerfile 
FROM centos 
VOLUME ["/datavolume3","/datavolume6"] 
CMD /bin/bash 

使用如下构建镜像

docker build -t="volume" . 

启动容器

docker run --name volume-dubble -it volume 

会看到这个容器下有两个目录,/datavolume3 和/datavolume6

五、数据卷容器

【1】什么是数据卷容器:

命名的容器挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器,就叫做数据卷容器

【2】挂载数据卷容器的方法
docker run --volumes-from [container name] 

例:

docker run --name data-volume -itd volume

(volume 这个镜像是上面创建的带两个数据卷 /datavolume3 和/ddatavolume6 的镜像)

docker exec -it data-volume /bin/bash(进入到容器中)
touch /datavolume6/lucky.txt 

退出容器

exit 

创建一个新容器挂载刚才 data-volume 这个容器创建的数据卷

docker run --name data-volume2 --volumes-from data-volume -itd centos /bin/bash 

进入到新创建的容器

docker exec -it data-volume2 /bin/bash 

查看容器的/datavolume6 目录下是否新创建了 lucky.txt 文件

cd /datavolume6 

可以看见有刚才在上一个容器创建的文件 lucky.txt

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

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

相关文章

react将选中文本自动滑动到容器可视区域内

// 自动滚动到可视区域内useEffect(() > {const target ref;const wrapper wrapperRef?.current;if (target && wrapperRef) {const rect target.getBoundingClientRect();const wrapperRect wrapper.getBoundingClientRect();const isVisible rect.bottom &l…

NLP入门系列—词嵌入 Word embedding

NLP入门系列—词嵌入 Word embedding 2013年,Word2Vec横空出世,自然语言处理领域各项任务效果均得到极大提升。自从Word2Vec这个神奇的算法出世以后,导致了一波嵌入(Embedding)热,基于句子、文档表达的wor…

MySQL5.7 百万数据迁移到 ElasticSearch7.x

前言 在日常项目开发中,可能会遇到使用 ES 做关键词搜索的场景,但是一般来说业务数据是不会直接通过 CRUD 写进 ES 的。 因为这可能违背了 ES 是用来查询的初衷,数据持久化的事情可以交给数据库来做。那么,这里就有一个显而易见的问题:ES 里的数据从哪里来? 本文介绍的…

幻兽帕鲁服务器全自动部署教程,小白也能轻松上手

幻兽帕鲁太火了,官方palworld服务器不稳定?不如自建服务器,基于腾讯云幻兽帕鲁服务器成本32元全自动部署幻兽帕鲁服务器,超简单有手就行,全程自动化一键部署10秒钟即可搞定,无需玩家手动部署幻兽帕鲁游戏程…

深入探索:缓冲区溢出漏洞及其防范策略

在网络安全的广阔领域中,缓冲区溢出漏洞一直是一个重要的议题。这种漏洞,如果被恶意利用,可能会导致严重的安全问题,包括数据泄露、系统崩溃,甚至可能被攻击者利用来执行恶意代码。在本文中,我们将深入探讨…

【stm32】hal库学习笔记-ADC模数转换(超详细)

【stm32】hal库学习笔记-ADC模数转换(超详细) 本篇章介绍了ADC实现电压检测的三种方式 ADC原理及选型 ADC将连续的模拟电压信号转换为二进制的数字信号 选型参数 速度(采样频率) 功耗 精度 转换原理 ADC hal库驱动函数 普通…

NLP自然语言处理

随着人工智能的飞速发展,自然语言处理(Natural Language Processing,简称NLP)已经成为了AI领域的一颗璀璨明珠。NLP旨在赋予机器理解和处理人类语言的能力,这不仅仅是一项技术革新,更是一种推动人与机器交流…

一文读懂转融通

最近多家公司都在讲解关于转融通要求。今天我们就来详细聊聊! 转融通是一种证券借贷机制,它允许机构投资者在融资融券交易中借入或借出证券。 具体来说,机构投资者可以向券商借入证券,或者将持有的证券借给券商,以扩大…

VScode实现文件、函数自动添加注释说明信息

常规的手动注释费时费力,不方便,拖慢开发进度,甚至影响开发者心情,因此需要实现自动注释,不仅能减少工作量,也能让编写的代码更加的规范整洁,易于理解。 在VScode的插件搜索栏中,查…

STM32学习笔记——看门狗

目录 一、看门狗概述 1、看门狗工作原理 2、独立看门狗IWDG主要性能: 二、看门狗相关寄存器 1、IWDG_KR (Independent Watchdog_Key Register) 关键词寄存器 2、IWDG_PR (Independent Watchdog_Prescaler Register) 预分频寄存器 3、IWDG_RLR (Independent W…

懒人精灵 之 Lua 捕获 json解析异常 ,造成的脚本停止.

Time: 2024年2月8日20:21:17 by:MemoryErHero 1 异常代码 Expected value but found T_END at character 12 异常代码 Expected value but found T_OBJ_END at character 223 处理方案 - 正确 json 示范 while true do--Expected value but found T_END at character 1--Ex…

鄂尔多斯交警推进东康快线“恶劣天气高影响路段优化工程”,全面提升科技赋能实战水平!

2023年5月29日,三部门联合印发《2023年省级恶劣天气高影响路段优化提升气象保障工作方案》(以下简称《工作方案》),持续推动恶劣天气交通预警处置试点成果和优化提升工作经验在第二批试点路段上推广应用。 【安装在东康快线上的应…

Jasper Manual

DATEFORMAT DATEFORMAT( ) 函數不可以使用 new SimpleDateFormat("yyyy-MM").format($F{Invoice_Date}.clone())

面向对象的三大特征之一继承

继承 继承的特性 概念:可以使得子类具有父类的属性(成员变量)和方法(成员方法),还可以在子类中重新定义,追加属性和方法。 继承的格式: public class 子类名 extends 父类名{} 父类:基类、超类 子类:派生…

【Unity】QFramework通用背包系统优化:TipPanel优化

前言 在学习凉鞋老师的课程《QFramework系统设计:通用背包系统》第五章时,笔者对物品提示TipPanel界面进行了一些优化。 优化内容包括: 解决闪烁问题跟随鼠标移动自适应界面大小生成位置优化 效果还是蛮丝滑的: 解决闪烁问题 …

[linux]:匿名管道和命名管道(什么是管道,怎么创建管道(函数),匿名管道和命名管道的区别,代码例子)

目录 一、匿名管道 1.什么是管道?什么是匿名管道? 2.怎么创建匿名管道(函数) 3.匿名管道的4种情况 4.匿名管道有5种特性 5.怎么使用匿名管道?匿名管道有什么用?(例子) 二、命名…

yolov5 torch转tensorrt详解【推荐】

转化函数 # 可以在https://github.com/ultralytics/yolov5/blob/master/export.py里面找到 def export_engine(model, im, file, half, dynamic, simplify, workspace4, verboseFalse, prefixcolorstr(TensorRT:)):# YOLOv5 TensorRT export https://developer.nvidia.com/ten…

MVCC多版本并发控制

MVCC mvcc是多版本并发控制。维护一个数据的多个版本,使读写没有冲突 隐式字段 DB_TRX_ID:最近修改事务id,记录插入这条记录或最后一次修改该记录的事务id DB_ROLL_PTR:回滚指针,指向这条记录的上一个版本,用于配合undo log&…

筛法思想的题目

这道题目比较经典,或者说这种思想比较经典。 这种筛法的思想。 我们正着想对于每一个 n 、 n − 1 、 n − 2 、 . . . 、 2 、 1 n、 n-1、n-2、...、2、1 n、n−1、n−2、...、2、1都分解一遍质因数显然是来不及的时间复杂度达到 O ( n n ) O(n \sqrt{n}) O(nn ​…

Open CASCADE学习|点和曲线的相互转化

目录 1、把曲线离散成点 1.1按数量离散 1.2按长度离散 1.3按弦高离散 2、由点合成曲线 2.1B样条插值 2.2B样条近似 1、把曲线离散成点 计算机图形学中绘制曲线,无论是绘制参数曲线还是非参数曲线,都需要先将参数曲线进行离散化,通过离…