docker es持久化_使用docker数据卷对容器数据持久化

volume是用于对Docker容器生成和使用的数据持久化的首选机制。如果您的容器生成非持久状态数据,请考虑使用 tmpfs挂载以避免将数据永久存储在任何地方,并通过避免写入容器的可写层来提高容器的性能。

aada19f5530536dbdcfe4e767d70ebb9.png

默认容器的数据存储

在这里我们在容器中创建一些模拟的数据,然后模式容器停止或删除后数据是否丢失。

## 创建数据​[root@myserver ~]# docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMESa0316d74ef5d        bulletinboard:1.0   "docker-entrypoint.s…"   55 minutes ago      Up 16 minutes       0.0.0.0:8000->8080/tcp   bb[root@myserver ~]# docker exec -it bb bashroot@a0316d74ef5d:/usr/src/app# lsDockerfile  app.js   fonts   node_modules     package.json  server.jsLICENSE     backend  index.html  package-lock.json  readme.md   site.cssroot@a0316d74ef5d:/usr/src/app# cdroot@a0316d74ef5d:~# lsroot@a0316d74ef5d:~# mkdir dataroot@a0316d74ef5d:~# lsdataroot@a0316d74ef5d:~# cd data/root@a0316d74ef5d:~/data# lsroot@a0316d74ef5d:~/data# echo 12323 > tst.txtroot@a0316d74ef5d:~/data# cat tst.txt12323root@a0316d74ef5d:~/data# pwd/root/dataroot@a0316d74ef5d:~/data#​​## 停止并重新启动容器数据还是存在的## 删除容器(加入对镜像做了修改)数据丢失 ​[root@myserver ~]# docker run -itd --name bb bulletinboard:1.098e14379e2109c9230d1d265ac586ce3bba433efb7d2ef544ef93cb58c859f0a[root@myserver ~]# docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES98e14379e210        bulletinboard:1.0   "docker-entrypoint.s…"   3 seconds ago       Up 2 seconds        8080/tcp            bb[root@myserver ~]# docker exec -it bb bashroot@98e14379e210:/usr/src/app# cdroot@98e14379e210:~# lsroot@98e14379e210:~#

VOLUME使用方法

我们来通过docker volume命令管理volume。 创建volume到将volume挂载到容器中。

## 创建一个volume[root@myserver ~]# docker volume create --name myvolumemyvolume[root@myserver ~]# docker volume lsDRIVER              VOLUME NAMElocal               myvolume[root@myserver ~]# docker volume inspect myvolume[    {        "CreatedAt": "2020-07-11T21:52:26-04:00",        "Driver": "local",        "Labels": {},        "Mountpoint": "/var/lib/docker/volumes/myvolume/_data",        "Name": "myvolume",        "Options": {},        "Scope": "local"    }]​## 在挂载点创建数据[root@myserver ~]# cd /var/lib/docker/volumes/myvolume/_data[root@myserver _data]# ls[root@myserver _data]# echo 11111 > a.txt[root@myserver _data]# lsa.txt[root@myserver _data]# cd -/root​​​## 将卷挂载给容器[root@myserver ~]# docker run -itd --name bb  -v myvolume:/data:rw bulletinboard:1.01ed40ff338280def96b4c395d33977219b3e3a47e10444cf23d16f4bb83e0e27[root@myserver ~]# docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES1ed40ff33828        bulletinboard:1.0   "docker-entrypoint.s…"   4 seconds ago       Up 3 seconds        8080/tcp            bb[root@myserver ~]# docker exec -it bb bashroot@1ed40ff33828:/usr/src/app# cdroot@1ed40ff33828:~# lsroot@1ed40ff33828:~# cd /root@1ed40ff33828:/# lsbin   data  etc   lib  media  opt   root  sbin  sys  usrboot  dev   home  lib64  mnt  proc  run   srv   tmp  varroot@1ed40ff33828:/# cd data/root@1ed40ff33828:/data# lsa.txtroot@1ed40ff33828:/data# cat a.txt11111root@1ed40ff33828:/data# echo 12323423 >> a.txtroot@1ed40ff33828:/data# cat a.txt1111112323423root@1ed40ff33828:/data# cdroot@1ed40ff33828:~# mkdir /data/testroot@1ed40ff33828:~# echo 12312312 > /data/test/a.txtroot@1ed40ff33828:~# exitexit​​### 删除容器后重新启动容器发现数据还在。[root@myserver ~]# docker rm --force bbbb[root@myserver ~]# docker run -itd --name bb  -v myvolume:/data:rw bulletinboard:1.017f0178d062e8fe041aae55229e1f522237ca5753e01515a451c68d9c2aaf51b[root@myserver ~]# docker exec -it bb bashroot@17f0178d062e:/usr/src/app# cd /data/root@17f0178d062e:/data# lsa.txt  testroot@17f0178d062e:/data# ls test/a.txt

容器挂载VOLUME的另外一种方式

我们也可以在启动容器的时候通过-v参数指定volume,如果volume不存在则会自动创建。

[root@myserver ~]# docker run -itd --name cc  -v /tmp/test:/data:rw bulletinboard:1.0c0fd785c403040c0f3fa0840a738359da5f54aa28f4201cdada0e8de19f8f88a[root@myserver ~]# docker volume lsDRIVER              VOLUME NAMElocal               myvolume[root@myserver ~]# cd /tmp/test/[root@myserver test]# ls[root@myserver test]# echo 111 >a.txt[root@myserver test]#[root@myserver test]#[root@myserver test]# lsa.txt[root@myserver test]#[root@myserver test]#[root@myserver test]# cd[root@myserver ~]# docker exec -it cc bashroot@c0fd785c4030:/usr/src/app# cd /data/root@c0fd785c4030:/data# lsa.txtroot@c0fd785c4030:/data#

DOCKER 存储卷

volume 创建后默认挂载数据目录:/var/lib/docker/volumes/volumeID/_data

[root@myserver ~]# docker volume inspect myvolume[    {        "CreatedAt": "2020-07-11T21:59:36-04:00",        "Driver": "local",        "Labels": {},        "Mountpoint": "/var/lib/docker/volumes/myvolume/_data",        "Name": "myvolume",        "Options": {},        "Scope": "local"    }]

共享VOLUME

--volumes-from 容器名称,共享容器的volume

方式一:挂载相同的volume

[root@myserver volumes]# docker run -itd --name server01 -v vtest:/data webserver:v1007d2a504410e435c260d6271d970056fc629880a6654b6777bec206008c4006​​docker run -itd --name server02  -v vtest:/data webserver:v1​​##创建数据[root@myserver volumes]# docker volume inspect vtest[    {        "CreatedAt": "2020-07-13T07:59:36-04:00",        "Driver": "local",        "Labels": null,        "Mountpoint": "/var/lib/docker/volumes/vtest/_data",        "Name": "vtest",        "Options": null,        "Scope": "local"    }][root@myserver volumes]# echo 123>/var/lib/docker/volumes/vtest/_data/a.txt

方式二: 使用--volumes-from

docker run -itd --name server02  --volumes-from server01 webserver:v1​# 将server01容器所挂载的卷同步给server02

#Docker# #容器云# #DevOps#

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

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

相关文章

求职信计算机工程师英语作文,开发工程师英文求职信范文

开发工程师英文求职信范文respected leaders:hello:first salute you sincere thanks, thank you for taking the time to consult the of my application letter!i am aptech a student, now already graduated from junior year. major in.net direction, and ismitted to be…

微信适配国产操作系统:原生支持 Linux

喜欢就关注我们吧!据 ZOL 报道,统信软件官方近日宣布上线适配统信 UOS 的微信桌面客户端,并称该微信版本为原生支持 Linux 的版本,同时支持龙芯、鲲鹏、麒麟等国产 CPU。据悉,统信 UOS 版的微信桌面客户端由腾讯公司研…

oracle拆分分区语法详解大全_Oracle hash的分区方法详解

hash的原理虽然简单,但是它在数据库中可以说是无处不在。其中hash partition是hash在数据库中一个简单的应用,虽然它没有range partition那么常用,但是我们在做数据库水平拆分时,其实就是利用了hash partition的原理,利…

计算机专业的吸引力,计算机专业文献翻译-面向对象编程具有多方面的吸引力.doc...

英文文摘Why has object-oriented programming had such a sweeping impact on the software development communityObject-oriented programming appeals at multiple levels. For managers, it promises faster and cheaper development and maintenance. For analysts and d…

ML.NET生成器带来了许多错误修复和增强功能以及新功能

ML.NET是一个开源的跨平台机器学习框架,适合 .NET 开发人员。它允许将机器学习集成到 .NET 应用中,而无需离开 .NET 生态系统,甚至拥有 ML 或数据科学背景。ML.NET工具(Visual Studio 中的 UI 模型生成器和跨平台 ML.NET CLI&…

yolo算法的优缺点分析_yolo算法介绍

yolo算法介绍(2020-06-06 16:49:28)把Yolo模型搞清楚后不得不再次为人类的智慧感慨,一个巧妙的模型。要想理解Yolo我们先要搞清楚Yolo到底要解决一个什么问题,解决这个问题必须做哪些事情。Yolo属于多目标检测,因此需要解决两个问题&#xff…

Flash 生命终止,HTML5能否完美替代?

Adobe 对 Flash Player 的支持计划在今天,也就是 2020 年 12 月 31 日终止。Windows 计算机上最新版本的 Flash Player 已经开始弹出生命周期终止提示窗口。提示中指出,为了保护用户系统,Adobe 将在 2021 年 1 月 12 日开始禁止 Flash 内容在…

14考研计算机考前,计算机专业考研考前终极预测试题.docx

PAGE \* MERGEFORMAT #PAGE \* MERGEFORMAT #真理惟一可靠的标准就是永远自相符合计算机专业考研考前终极预测试题一?p单项选择题:1~40小题,每小题2分,共80分。在每小题给出的四个 选项中,请选出一项最符合题目要求的。1若某线性…

typora公式zuo对齐_Markdown编辑神器-Typora

Markdown For Typora Overview Markdown is created by Daring Fireball, the original guideline is here. Its syntax, however, varies between different parsers or editors. Typora is using [GitHub Flavored Markdown][GFM]. 注:Markdown语法与知乎不能完全兼容,显示…

使用 ML.NET 识别乐高颜色块

每一个乐高迷都拥有很多的颜色块,需要进行排序和按类型分拣,按照《Organizing your LEGO Bricks》或许有所帮助,但这不是一个简单的任务,因为有很多颜色块有非常微妙的差异。如果换作一个典型的程序员可以做什么来解决这个问题呢&…

维修计算机机房管理员职责,机房管理员岗位职责

机房管理员在现代教育技术中心主任的领导下,负责学生机房的规划建设和日常管理工作。具体履行以下职责:一、树立一切以教学为中心的服务意识,加强与教师之间的联系,注重业务学习,不断提高业务技能。二、掌握计算机操作…

ccs加载out文件_类加载流程、类加载机制及自定义类加载器详解

原文:juejin.im/post/5cffa528e51d4556da53d091一、引言当程序使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、链接、初始化三个步骤对该类进行类加载。二、类的加载、链接、初始化1、加载类加载指的是将类的class文件读入内存&a…

写给自己,2020的年终总结

大概从2017年起,每年在博客园写一篇博客回顾自己过去的一年已经成为我的一种习惯,今年也同样毫不例外。不过与往年相比,总归还是受拖延症的影响,在公历年即将过去才开始动手敲下第一行文字。如果要给自己的2020年年终总结列一个篇…

2021福建计算机会考操作题,2021年福建省信息技术会考笔试试题答案.doc

.6信息技术基础(必修)选择题(共50题,每题1分,每题只有一个正确答案)1.下列相关信息叙述,不正确是A.信息无处不在,但并不一定全部是真实B.信息能够被存放和传输C.信息价值完全取决于信…

unity中单位是米还是厘米_【一步数学】小学数学单位换算公式大全及专项训练...

重量单位换算1吨1000千克 1吨1000 000克吨:吨是重量单位,公制一吨等于1000公斤:计算船只容积的单位,一吨等于2.83立方米(合100立方英尺)。1千克1000克 500克1斤千克:克,(符号kg或㎏)…

起点低,是彪悍的最好证明!

阅读本文大概需要4分钟。一个读者的问题:洋哥,我老家是农村的,只考上了专科,毕业后北漂两年月薪才7000,每天都会很焦虑,想努力但想到自己的过去,又怀疑努力是否有用。和这个读者聊了很久&#x…

量子计算机与新型传感器,新型量子传感器为超导量子计算机发展开辟了新路径...

莫斯科国立科技大学(NUSTMISIS)、俄罗斯量子中心(RQC)、以及德国卡尔斯鲁厄理工学院(KIT)的一支联合研究团队,已经在量子优势研究方面取得了重大的进展。由发表在《npj量子信息》期刊上的研究论文可知,其打造的一款量子传感器,为量子比特中两…

二分法查找是基于有序_201,查找顺序查找

查找算法中顺序查找算是最简单的了,无论是有序的还是无序的都可以,也不需要排序,只需要一个个对比即可,但其实效率很低。我们来看下代码1public static int search1(int[] a, int key) {2 for (int i 0, length a.length; i …

河南大学计算机组成原理,河南大学计算机组成原理考点

河南大学计算机组成原理考点 (34页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!11.90 积分第1章 计算机系统概论1、计算机硬件的五大部件?三大部分?运算器 存储器…

【Git】Git-常用命令备忘录(二)

开发过程中,各种问题都会出现,比如手残,眼花,头昏,导致了误操作,那么git作为一款由Linus亲自操刀,替换掉BitMover公司的BitKeeper的优秀源代码管理工具,让您在各种乱七八糟的误操作中&#xff0…