Docker 学习(三)——数据管理

容器中的管理数据主要有两种方式:

        数据卷 (Data Volumes): 容器内数据直接映射到本地主机环境;
        数据 卷容器( Data Volume Containers): 使用特定容器维护数据卷

1.数据卷

数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于 Linux 下对目录进行的 mount 操作

除了使用 volume 子命令来管理数据卷外,还可以在创建容器时主机的任意路径 挂载到容器内作为数据卷,这种形式创建的数据卷称为绑定数据卷。在用 docker [container] run命令的时候,可以使用 mount 选项来使用数据卷。 mount 项支持三种类型的数据卷,包括

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

绑定数据卷:如果挂载的路径在宿主机上不存在,Docker 会自动创建该路径。

#创建一个 web1 容器作为数据卷容器

[root@Docker ~]# docker run --name web1 -v /var/www:/test1 -it centos:7 /bin/b[root@a89b95b269bc /]# ls
anaconda-post.log  dev  home  lib64  mnt  proc  run   srv  test1  usr
bin                etc  lib   media  opt  root  sbin  sys  tmp    var
[root@a89b95b269bc /]# echo "I am test1" >/test1/haha.txt
[root@a89b95b269bc /]# exit
exit

这里宿主机上的 /var/www 目录不存在,Docker 则会自动创建这个目录 (但仅限于是目录,不是文件,否则会报错)

#返回宿主机检查 

2.数据卷容器

  如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用

#创建一个 web2 容器作为数据卷容器

[root@Docker ~]# docker run --name web2 -v /test1 -v /test2 -it centos:7 /bin/bash
[root@ce3ce76e3b7c /]# ls
anaconda-post.log  dev  home  lib64  mnt  proc  run   srv  test1  tmp  var
bin                etc  lib   media  opt  root  sbin  sys  test2  usr
[root@ce3ce76e3b7c /]# echo "this is test1" >/test1/haha.txt
[root@ce3ce76e3b7c /]# echo "this is test2" >/test2/haha.txt
[root@ce3ce76e3b7c /]# exit
exit

#使用  --volumes-from 来挂载 web2 容器中的数据卷到新的容器中

[root@Docker ~]# docker run -it --volumes-from web2 --name web3 centos:7 /bin/bash
[root@049bca80ec53 /]# ls
anaconda-post.log  dev  home  lib64  mnt  proc  run   srv  test1  tmp  var
bin                etc  lib   media  opt  root  sbin  sys  test2  usr
[root@049bca80ec53 /]# cat /test1/haha.txt 
this is test1
[root@049bca80ec53 /]# cat /test2/haha.txt 
this is test2

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

可以利用数据卷容器对其中的数据卷进行备份、恢复,以实现数据的迁移

#备份 web1 数据卷

# 建立容器并指定使用卷到要备份的容器
[root@Docker ~]# docker run --volumes-from web1 \
-v $(pwd):/backup --name woker1 centos:7 \	# 把当前目录挂载到容器中用于保存备份数据
tar zcf /backup/backup.tar /test1		# 备份数据到本地#验证备份文件
[root@Docker ~]# tar -tvf backup.tar 
drwxr-xr-x root/root         0 2025-03-04 15:44 test1/
-rw-r--r-- root/root        11 2025-03-04 17:49 test1/haha.txt

#传送备份文件到目标服务器

[root@Docker ~]# scp backup.tar 192.168.8.164:~
root@192.168.8.164's password: 
backup.tar                       100%   10KB   7.2MB/s   00:00   

#数据恢复

[root@centos ~]# docker run --rm --volumes-from new_web -v $(pwd):/backup centos:7 \
>   bash -c "mkdir -p /data && tar xvf /backup/backup.tar -C /data -m -p"
test1/
test1/haha.txt
[root@centos ~]# 

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

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

相关文章

基于SSM+Vue+uniapp的考研交流(带商城)小程序+LW示例参考

系列文章目录 1.基于SSM的洗衣房管理系统原生微信小程序LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统LW参考示例 3.基于SpringBootVue的企业人事管理系统LW参考示例 4.基于SSM的高校实验室管理系统LW参考示例 5.基于SpringBoot的二手数码回收系统原生微信小程序LW参考示…

2025-03-04 学习记录--C/C++-PTA 练习5-3 字符金字塔

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 二、解题步骤 ⭐️ 第1步、把字符和一个空格看作整体,即"G_"; 第2步、外…

DeepSeek集成到VScode工具,让编程更高效

DeepSeek与VScode的强强联合,为编程效率树立了新标杆。 DeepSeek,一款卓越的代码搜索引擎,以其精准的索引和高速的检索能力,助力开发者在浩瀚的代码海洋中迅速定位关键信息。 集成至VScode后,开发者无需离开熟悉的编辑…

前端-css(预编译器sass)

1.sass(scss->sass第三代) Sass3 -> Scss(Sassy CSS),SCSS(Sassy CSS) 是 CSS 语法的扩展. 2.scss注释 Sass 支持标准的 CSS 多行注释 /* */,以及单行注释 //,前者会 被完整输出到编译后的 CSS 文件中,而后者则不会 3.scss定义变量 …

【计算机网络入门】初学计算机网络(十一)重要

目录 1. CIDR无分类编址 1.1 CIDR的子网划分 1.1.1 定长子网划分 1.1.2 变长子网划分 2. 路由聚合 2.1 最长前缀匹配原则 3. 网络地址转换NAT 3.1 端口号 3.2 IP地址不够用? 3.3 公网IP和内网IP 3.4 NAT作用 4. ARP协议 4.1 如何利用IP地址找到MAC地址…

Android 获取jks的SHA1值:java.io.IOException: Invalid keystore format

命令生成 keytool -list -v -keystore 全路径.jks -alias 别名 -storepass 密码 -keypass 密码 1、遇到 的问题: 通过快捷键 ‘win r’ 启动的小黑框运行上面的命令会出现下面这个错误keytool 错误: java.io.IOException: Invalid keystore format 2、解决问题 …

掌握 ElasticSearch 聚合查询:Aggregations 入门与实战

掌握 ElasticSearch 聚合查询:Aggregations 入门与实战 一、引言 (Introduction)二、数据准备 (Data Preparation)2.1 创建索引 (Create Index)2.2 批量导入数据 (Bulk Import Data) 三、聚合查询基础 (Aggregation Basics)3.1 什么是聚合查询?(What are…

Microsoft.Office.Interop.Excel 的简单操作

Microsoft.Office.Interop.Excel 的简单操作 1、安装 Microsoft.Office.Interop.Excel2、声明引用 Microsoft.Office.Interop.Excel3、简单的新建 EXCEL 操作代码4、将 DataGridView 表数据写到 EXCEL 操作代码5、将 EXCEL 表数据读取到 C# 数据表 DataTable 操作代码 1、安装 …

LLM 对话框组件 | 字节青训营前端开发项目

系统介绍 LLM对话框项目系统介绍 一、项目概述 选题背景随着人工智能技术的飞速发展,自然语言处理(NLP)领域取得了显著进展,其中对话系统(Dialog System)作为NLP的重要应用方向,正逐渐渗透到人们的日常生活中。从智能客服到语音助手,从智能家居到在线教育,对话系统以…

k8s命名空间和资源配额

在现代的云计算环境中,容器化技术已成为主流。而 Kubernetes(简称 k8s)作为一项开源的容器编排系统,广泛应用于各类场景。本文将详细介绍关于 k8s 中的命名空间和资源配额,帮助你更好地理解和管理你的集群资源。 k8s …

从统计学视角看机器学习的训练与推理

从统计学视角看机器学习的训练与推理 目录 引言:统计学与机器学习的奇妙缘分训练与推理:你得先学会“看数据”再“用数据”最大似然估计(MLE):从直觉到数学证明 3.1 伯努利分布的MLE3.2 单变量高斯分布的MLE3.3 多元…

AI赋能企业协作4-NL2Sql技术路线

1.1 对话即服务的一点思考 在数智化转型的过程中,基于即时通信(IM)的协作平台正悄然成为企业智能化转型的“新基建”。协作平台天然具备高频交互、实时协同和场景化落地的特性,仿佛是为对话式AI量身定制的试验场——员工在熟悉的聊…

批量提取 Word 文档中的页面

如何将 Word 文档中的页面提取出来形成一个新的文档呢?比如将 Word 文档中的第一页提取出来、将 Word 文档中的最后一页提取出来、再或者将 Word 文档中的中间几页提取出来等等。人工的处理肯定非常的麻烦,需要新建 Word 文档,然后将内容复制…

Sqlserver安全篇之_启用TLS即配置SQL Server 数据库引擎以加密连接

官方文档 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/configure-sql-server-encryption?viewsql-server-ver16 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/manage-certificates?viewsql-server-ver15&pre…

多镜头视频生成、机器人抓取、扩散模型个性化 | Big Model weekly第58期

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 01 GLM-4-Voice: Towards Intelligent and Human-Like End-to-End Spoken Chatbot 本文介绍了一种名为GLM-4-Voice的智能且类人化的端到端语音聊天机器人。它支持中文和英文,能够进行实时语音对话&a…

基于 Rust 与 GBT32960 规范的编解码层

根据架构设计,实现编解码层的代码设计 Cargo.toml 加入二进制序列化支持 # 序列化支持 ... bincode "1.3" # 添加二进制序列化支持 bytes-utils "0.1" # 添加字节处理工具 开始编码 错误处理(error.rs&#x…

MOM成功实施分享(七)电力电容制造MOM工艺分析与解决方案(第一部分)

声明:文章仅用于交流学习,不用于商业项目实施,图片来源于网络,如有侵犯权利,请联系作者及时删除。 本方案旨在对电力电容(PEC和PQM型号)制造工艺深度分析,结合管理要求设计MOM相关功…

FPGA开发,使用Deepseek V3还是R1(1):应用场景

以下都是Deepseek生成的答案 FPGA开发,使用Deepseek V3还是R1(1):应用场景 FPGA开发,使用Deepseek V3还是R1(2):V3和R1的区别 FPGA开发,使用Deepseek V3还是R1&#x…

JavaWeb后端基础(3)

原打算把Mysql操作数据库的一些知识写进去,但是感觉没必要,要是现在会的都是简单的增删改查,所以,这一篇,我直接从java操作数据库开始写,所以这一篇大致就是记一下JDBC、MyBatis、以及SpringBoot的配置文件…

Pytorch实现之SRGAN+CBAM的结构设计

简介 简介:在SRGAN的残差连接中加入了CBAM注意力机制,同时设计了四类损失来训练。 论文题目:Super-resolution Generative Adversarial Networks Based on Attention Model(基于注意力模型的超分辨率生成对抗网络) 会议:2020 IEEE第六届计算机与通信国际会议 摘要:基…