Docker容器化技术(数据卷的管理)

news2024/11/23 19:05:47

         数据卷 是一个可供容器使用的特殊目录,它将主机操作系统目录直接 映射进容器,类似于 Linux 中的 mount 行为 。

数据卷:可以提供很多有用的特性

  • 数据卷可以在容器之间共事和重用,容器间传递数据将变得高效与方便;
  • 对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作;
  • 对数据卷的更新不会影响镜像,解摘开应用和数据;
  • 卷会一直存在 ,直到没有容器使用,可以安 地卸载它;

 创建数据卷:

使用如下命令可以快速在本地创建一个数据卷,,查看/ ar/lib docker /vo lumes 路径下,会发现所 建的数据卷位置:

[root@localhost ~]# docker volume create -d local test
test
[root@localhost ~]#  ls -1 /var/l b/docker/volumes

绑定数据卷:

用 docker  run口命令的时候,可以使用 mount 选项来使用数据卷 mount 项支持三种类型的数据卷,包括:

  • volume 普通数据卷,映射到主机/var/ lib /docke /vo lumes 径下;
  • bind :绑定数据卷,映射到主机指定路径下;
  • tmpfs :临时数据卷,只存在于内存中

使用 training/webapp 镜像创建 Web 容器,并创建一个数据卷挂载到容器 的/opt/webapp 目录:

[root@localhost ~]# docker run -d -P --name web --mount type=bind,source=/webapp,destination=/opt/webapp training/webapp python app.py 
1063002e84c49039903d311c65b029c28ebf6db862a07840f3b8bf68029276f9

上述命令等同于:

[root@localhost ~]# docker run -d -P --name web -v /webapp:/opt/webapp training/webapp python app.py
bd23a4b08741092c7158bfd9e1a286edf95ba21b13add4b61658b18fc1305399

数据卷容器:

如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载。

创建一个数据卷容器 dbdata 并在其中创建一个数据卷挂载到/dbdata

[root@localhost ~]#  docker run -it -v /dbdata --name dbdata busybox

查看/dbdata目录:

/ # ls
bin     dev     home    lib64   root    tmp     var
dbdata  etc     lib     proc    sys     usr

然后,可以在其他容器中使用--volumes-from 来挂载 dbdata 容器中的数据卷,例如创建 dbl db2 两个容器,并从 dbdata 容器挂载数据卷,我们先克隆三台主机,执行如下命令:

[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker run -it --volumes-from dbdata --name db1 busybox
/ # 
/ # 
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker run -it --volumes-from dbdata --name db2 busybox
/ # 
/ # 

此时, 容器 dbl db2 都挂载同一个数据卷到相同的/dbdata 目录,三个容器任何方在该目录下的写人,其他容器都可以看到 例如,在 dbdata 容器中创建 test 文件:

在容器dbdata中
/ # cd /dbdata
/dbdata # 
/dbdata # touch wyx
在容器db1中查看
/ # ls dbdata/
wyx
/ # 

如果删除了挂载的容器(包括 dbdata db1和 db2 ),数据卷并不会被自动删除 如果 删除一个数据卷,必须在删除最后一个还挂载着它的容器时显式使用 docker rm -v 令来指定同时删除关联的容器

 利用数据卷容器来迁移数据

1.备份

[root@localhost ~]# docker run --volumes-from dbdata -v $(pwd):/backup --name worker busybox tar -cvf /backup/backup.tar /dbdata

2.恢复

[root@localhost ~]# docker run -v /dbdata --name dbdata2 busybox /bin/bash
[root@localhost ~]# docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar -xvf /backup/backup.tar
dbdata/
dbdata/wyx
[root@localhost ~]# ll
total 593940
-rw-------. 1 root root       706 Mar  4 06:39 anaconda-ks.cfg
-rw-r--r--. 1 root root      2048 Mar 11 20:01 backup.tar

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

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

相关文章

week06 day04 (数据库高级函数 procedure 、sql写函数)

一. ER模型 矩形: 代表实体椭圆:代表实体的属性菱形:relation 代表实体之间的关系 二. 存储过程(procedure) 1. 语法 语法: create procedure 存储过程名(参数,…) begin//代码 end// 注意: 因为在存储…

数据结构——堆的应用 堆排序详解

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

[Prob] Definition 3.7.5 (Function of two r.v.s)

定义3.7.5(两个随机变量的函数):给定一个样本空间 \( S \) 的实验,如果 \( X \) 和 \( Y \) 是映射 到X(s) 和 Y(s) 的随机变量,那么 g(X, Y) 就是映射 s 到 g(X(s), Y(s)) 的随机变量。 请注意,我…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:DatePicker)

日期选择器组件,用于根据指定日期范围创建日期滑动选择器。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 DatePicker(options?: DatePickerOptions) 根据指定范…

SAP 批量删除工艺路线和主配方_简介

通常我们在创建工艺路线的时候或者在导入工艺路线的时候,会存在数据导入出错,或者你创建的工艺路线需要删除的情况,通常情况下我们第一个想到的就是使用CA02或者C202去删除工艺路线或者是主配方。但是这样会存在一个问题就是,首先我们知道工艺路线和主配方都是存在在组里面…

记一次项目所学(中间件等)-动态提醒功能(RocketMQ)

记一次项目所学(中间件等)–动态提醒功能(RocketMQ) 订阅发布模式与观察者模式 RocketMQ:纯java编写的开源消息中间件 高性能低延迟分布式事务 Redis : 高性能缓存工具,数据存储在内存中,读写速度非常快 …

VBA_NZ系列工具NZ03:利用右键进行筛选操作

我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织…

2024西安天文科技与探索装备展览会-相聚7月

2024西安天文科技与探索装备展览会-相聚7月 时间:2024年7月14-16日 地点:西安国际会展中心 首个面向全球天文产业的展览;中国唯一全面反映天文产业链的盛会; 定位于国际高端产业的展会;众多天文机构鼎力支持和重点培…

HTTPS网络请求失败WiFi请求成功

在xml的config文件中添加raw文件位置 raw文件是证书的pem文件去掉key文件 文件名称去掉多余的.cn

炫云客户端12载风华,最初界面竟长这样?满满都是回忆!

2013年,注定是一个意义非凡的节点 让我们将时间轴拨回到2013年 这一年,到底发生了什么呢? 这一年,嫦娥三号成功落月 中国探月工程开启新征程 这一年,工信部向三大运营商颁发4G牌照 标志着我国正式迈入4G时代 同…

51单片机基础篇系列-超声波测距

🌈个人主页:会编辑的果子君 💫个人格言:“成为自己未来的主人~” HC-SR04产品特点 典型工作用电压:5V 超小静态工作电流:小于2mA 感应角度:不大于15度 探测距离:2cm-400cm 高精度&#…

Spring AOP常见面试题

目录 一、对于AOP的理解 二、Spring是如何实现AOP的 1、execution表达式 2、annotation 3、基于Spring API,通过xml配置的方式。 4、基于代理实现 三、Spring AOP的实现原理 四、Spring是如何选择使用哪种动态代理 1、Spring Framework 2、Spring Boot 五…

【C++】STL(四) deque容器

4、deque容器 4.1 简介 ① 功能:双端数组,可以对头端进行插入删除操作,也可以对尾端进行插入和删除操作。 ② deque与vector区别: vector对于头部的插入效率低,数据量越大,效率越低,例如头部…

掘根宝典之C++迭代器简介

在C中,容器是一种用于存储和管理数据的数据结构。C标准库提供了多种容器,每种容器都有其独特的特点和适用场景。 我们知道啊,我们可以通过下标运算符来对容器内的元素进行访问,但是只有少数几种容器才同时支持下标运算符&#xf…

#车载诊断协议DoIP系列 —— 套接字处理 在线检查

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠自己,四海皆为家。人生的面吃一…

Java中 final、finally、finalize 有什么区别?

1、典型回答 final、finally、finalize 是 Java 中三个不同的关键字,它们除了长得像之外,其他的(作用和含义)完全不同。 它们三个的区别就好像:雷、雷锋、雷峰塔之间的区别。(是三个完全不同的东西&#…

【动态规划】C++算法312 戳气球

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 LeetCode312 戳气球 有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。 现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得 nums…

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

基于springbootvue实现教学改革项目管理系统演示 摘要 教学改革行业的不断发展才能让更多的学生受益,那么教学改革的老师们对于教改可谓是花费了很大的心血。这种心血不仅仅在教学方式方法上,而且还是在于线下的流程审批和审核及教学改革的项目资料整理…

便携式隧道能见度仪的使用

TH-BN6随着交通基础设施的不断发展,隧道作为连接城市、山区等关键地段的交通要道,发挥着越来越重要的作用。然而,隧道内的能见度问题一直是困扰隧道运营者的难题。为了保障隧道通行安全,便携式隧道能见度仪应运而生。 二、便携式隧…

解忧杂货铺(①):必备网站资源

目录 在线工具 简单教程 程序员导航网 中国大学 青柠 廖雪峰的官方网站 在线工具 各类工具 https://tool.lu/ 简单教程 简单教程 https://www.twle.cn/ 程序员导航网 程序员导航网 https://hao.panziye.com/ 中国大学 中国大学MOOC网 https://www.icourse163.org/ 青…