我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Docker的持久化存储和数据共享是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Docker的持久化存储和数据共享是什么

这篇“Docker的持久化存储和数据共享是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Docker的持久化存储和数据共享是什么”文章吧。

有些容器会自动产生一些数据,为了不让数据随着container的消失而消失,保证数据的安全性。例如:数据库容器,数据表的表会产生一些数据,如果我把container给删除,数据就丢失。为了保证数据不丢失,这就有了volume的存在。

data volume 结构图

Docker的持久化存储和数据共享是什么

docker持久化数据的方案

  • 基于本地文件系统的volume。可以再执行docker create或docker run时,通过-v参数将主机的目录作为容器的数据卷。这部分功能便是基本的本地文件系统的volume管理。

  • 基于plugin的volume,支持第三方的存储方案,比如nas,aws

volume的类型

受管理的data volume,由docker后台自动创建。

绑定挂载的volume,具体挂载位置可以由用户指定。

数据持久化之data volume

以官方镜像mysql的dockerfile文件为例 。其中dockerfile通过volume指定了当前容器中要备份的文件路径,但是并没有指定说要保存到宿主机的哪个位置。

volume:映射容器中的文件到本地宿主机硬盘中

Docker的持久化存储和数据共享是什么

在我们使用 docker run

启动mysql镜像容器的时候,容器会默认在宿主机生成一个volume,至于位置在哪,名字是什么,可以通过如下命令查看

#查看所有volume
docker volume ls
#删除指定volume
docker volume rm [volume name]
#查看volume详细
docker volume inspect [volume name]

Docker的持久化存储和数据共享是什么

此时我们删除容器,发现volume数据卷还在,有保留。

Docker的持久化存储和数据共享是什么

此时我们会觉得这个data volume name 的名字很长,很不好理解。我们可以通过 -v 如下命令来指定生成的volume name docker run -d -v mysql:/var/lib/mysql --name mysql mysql5.7
-v

:前参数是volume name, :后面的是要备份的文件目录(容器)

Docker的持久化存储和数据共享是什么

此时我们删除容器,volume数据卷还在,我们用这个名为mysql的volume作为一个新容器的数据卷,覆盖它。

docker run -d -v mysql:/var/lib/mysql --name mysql2 mysql5.7

进入mysql2容器中,mysql -uroot 进入数据库中,发现当前数据库数据和之前删除的容器中的数据库数据一样。

数据持久化之bind mounting

和上面data volume不同的是,bind mounting只能通过 docker run -v 方式启动,无法使用dockerfile文件的方式。

运行容器的时候指定本地的一个文件目录和容器中的一个文件目录的映射,通过这个可以做文件数据同步,2方无论哪一方有修改,另一方都会同步内容

docker run -d -v $(pwd):/usr/share/nginx/html -p 80:80 --name nginx nginx

这个时候 -v :前面的参数是本机文件路径, :后面是docker文件目录(容器)

值得注意的是 ,使用bind mounting方式做数据卷的映射时,首次 docker run -v 运行,如果本机的文件夹是没有内容的,docker容器中的文件夹是有内容的,则本机的会覆盖dokcer容器中的,也就是容器中原本有内容的也会没有内容。

以上就是关于“Docker的持久化存储和数据共享是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Docker的持久化存储和数据共享是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker存储卷:数据持久化与共享策略

在Docker中,存储卷是一种用来持久化数据的机制,可以让容器中的数据在容器删除后仍然保留。存储卷可以用来实现数据共享、备份与恢复等功能。下面是一些关于Docker存储卷的数据持久化与共享策略:数据持久化:使用存储卷可以实现容器中数据的持久
Docker存储卷:数据持久化与共享策略
2024-04-25

docker持久化存储数据的方法是什么

Docker提供了多种方法来实现持久化存储数据:1. 数据卷(Volumes):数据卷是一个特殊的目录,可以绕过容器文件系统来直接访问宿主机的文件系统。使用数据卷可以将容器内的数据持久化保存在宿主机上,并且可以在多个容器之间共享数据卷。可以
2023-10-27

Netdata的监控数据是否支持持久化存储

是的,Netdata的监控数据支持持久化存储。 Netdata可以配置为将监控数据存储在本地磁盘上,以便稍后进行分析和检查。此外,Netdata还支持将监控数据发送到远程数据库,如InfluxDB或Graphite,以便进行更长期的存储和分
Netdata的监控数据是否支持持久化存储
2024-04-24

Kubernetes存储系统数据持久化管理方法是什么

本篇内容主要讲解“Kubernetes存储系统数据持久化管理方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Kubernetes存储系统数据持久化管理方法是什么”吧!引言Kubernet
2023-07-04

Kubernetes持久化卷与动态存储的方法是什么

Kubernetes持久化卷(Persistent Volumes)和动态存储(Dynamic Provisioning)是Kubernetes中用于持久化存储的重要概念。持久化卷允许容器在重新调度时保留其数据,并且可以与不同的存储后端进
Kubernetes持久化卷与动态存储的方法是什么
2024-05-07

vuex数据持久化的原理是什么

Vuex数据持久化的原理是将Vuex存储在本地存储(localStorage)中,以便在页面刷新或关闭后仍能保留Vuex的状态。具体实现方式是监听Vuex的mutation,每次mutation被触发时,将Vuex的状态存储在本地存储中。在
2023-05-14

Redis数据持久化的概念是什么

这篇文章主要讲解了“Redis数据持久化的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis数据持久化的概念是什么”吧!目录一、数据持久化的概述1、RDB持久化2、开启AOF
2023-06-20

Vue中的生命周期和数据共享是什么

这篇文章主要介绍了Vue中的生命周期和数据共享是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中的生命周期和数据共享是什么文章都会有所收获,下面我们一起来看看吧。一、组件的生命周期1.1 生命周期 &
2023-06-30

redis存储数据序列化的方法是什么

Redis存储数据时,可以使用以下几种序列化方法:1. 字符串序列化:将数据以字符串的形式进行存储,可以使用Redis提供的字符串数据结构进行存取操作。常见的字符串序列化方法有JSON、XML、YAML等。2. 二进制序列化:将数据以二进制
2023-08-24

prometheus数据收集和存储的方法是什么

Prometheus是一个开源的监控系统,用于记录和统计系统的指标数据。它通过一种称为PromQL的查询语言来查询和分析这些数据。Prometheus数据收集和存储的方法如下:通过Prometheus服务器定期收集系统的指标数据。这些指标数
prometheus数据收集和存储的方法是什么
2024-04-09

Ruby数据存储和处理的方法是什么

在Ruby中,数据存储和处理的方法通常使用数据库来实现。常用的数据库包括MySQL、PostgreSQL、SQLite等。可以使用ORM(Object-Relational Mapping)框架如ActiveRecord来简化数据库操作,也
Ruby数据存储和处理的方法是什么
2024-04-10

Redis做数据持久化的解决方案及底层原理是什么

本篇内容介绍了“Redis做数据持久化的解决方案及底层原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录数据持久化RDB生成方法s
2023-06-20

PHP海量数据存储和查询的方法是什么

PHP海量数据存储和查询方法PHP提供多种机制来高效存储和查询海量数据。存储方法包括关系型数据库(RDBMS)、非关系型数据库(NoSQL)、对象存储和搜索引擎。查询方法包括SQL查询、ORM、NoSQL驱动程序和聚合查询。其他考虑因素包括数据大小、性能要求、数据类型和预算。最佳实践包括选择合适的存储方法、优化查询、利用缓存和监控性能。通过选择合适的存储和查询方法并遵循最佳实践,PHP开发人员可以有效管理海量数据,为Web应用程序和数据分析提供强大的基础。
PHP海量数据存储和查询的方法是什么
2024-04-14

PHP海量数据存储和查询的方法是什么

在PHP中,海量数据存储和查询可以通过以下方法实现:1. 使用数据库:PHP支持多种数据库,如MySQL、PostgreSQL等。可以将海量数据存储在数据库中,并使用SQL查询语言进行查询和检索。2. 使用缓存:将海量数据存储在缓存中,如R
2023-08-29

什么是 JDBC Blob 数据类型?如何存储和读取其中的数据?

BLOB 是二进制大对象,可以容纳可变数量的数据,最大长度为 65535 个字符。它们用于存储大量二进制数据,例如图像或其他类型的数据。文件。定义为 TEXT 的字段也保存大量数据。两者之间的区别在于,存储数据的排序和比较在 BLOB 中区
2023-10-22

什么是 JDBC Blob 数据类型如何存储和读取其中的数据

JDBC Blob(Binary Large Object)是一种用于存储大型二进制数据的数据类型,比如图片、音频、视频等。在数据库中,Blob数据类型存储的是二进制数据的指针,而不是实际的数据。实际的数据可以通过Java程序进行存储和读取
2023-10-10

编程热搜

目录