小白到运维工程师自学之路 第六十二集 (docker持久化与数据卷容器)

一、概述

Docker持久化是指将容器中的数据持久保存在主机上,以便在容器重新启动或迁移时不丢失数据。由于Docker容器是临时和可变的,它们的文件系统默认是易失的,这意味着容器中的任何更改或创建的文件都只存在于此容器的生命周期内。但是,在许多场景中,我们希望在容器终止后仍然保留数据,并且能够在容器重新启动时继续使用。

为了实现持久化,Docker提供了几种方法:

1、数据卷(Volumes):数据卷是容器内和主机之间共享和持久化数据的一种方法。数据卷可以用于在容器之间共享数据,也可以用于将数据保存到宿主机上的特定路径。数据卷可以手动创建,也可以在容器启动时自动创建。

2、绑定挂载(Bind Mounts):绑定挂载允许将主机上的目录或文件直接挂载到容器中。这种方法允许容器访问主机上的文件系统,并且文件的更改会同时反映在容器和主机之间。

3、临时文件系统(tmpfs):tmpfs是一种内存文件系统,它可以在容器内部创建临时文件和目录。tmpfs文件系统的数据不会写入磁盘,而是存储在内存中。当容器终止时,tmpfs文件系统中的数据会被删除。

通过使用这些持久化技术,可以确保容器的数据在容器终止或重新启动时仍然可用,从而提高容器的可靠性和灵活性。

二、部署

1、Volumes:Docker会管理宿主机文件系统的一部分资源,默认位于 /var/lib/docker/volumes 目录中;(最常用的方式)

docker run -it -v /boot/ nginx /bin/bash 
root@f470443d8604:/# touch /boot/syh.txt
root@f470443d8604:/# ls /boot/

退出(ctrl+pq),到宿主机中查看

可以看到在默认路径中会有在容器中创建的测试文件

docker volume create nginx-data      创建一个自定义容器卷docker volume ls                     查看所有卷组docker volume inspect nginx-data     查看指定卷组的详细信息

docker run -d -it --name=nginx -p 8000:80 -v  创建使用指定卷的容器
docker exec -it nginx /bin/bash

 把容器删除后会发现文件还会存在

ls /var/lib/docker/volumes/nginx-data/_data/
docker stop nginx
docker rm nginx
ls /var/lib/docker/volumes/nginx-data/_data/

 

所以在数据卷里边的东西是可以持久化的。如果下次还需要创建一个nginx容器,那么时候复用当前数据卷里面文件的。

docker volume rm nginx-data      删除卷组
docker volume ls

2、Bind Mounts的基本使用 

docker run -d -it --name=nginx -p 800:80 -v /wwwroot:/usr/share/nginx/html nginx
docker exec -it nginx /bin/bash
ls /usr/share/nginx/html

 

cat /wwwroot/index.html
echo "test html" > /wwwroot/index.html

 

docker inspect nginx    绑定验证

docker stop nginx      清除卷组
docker rm nginx
ls /wwwroot/

同volumes一样,当我们清理掉容器之后,挂载目录里面的文件仍然还在,不会随着容器的结束而消失,从而实现数据持久化。

三、数据卷容器

数据卷容器(Volume containers)是一种用于存储和共享数据的容器。在容器化的环境中,容器是一种轻量级的虚拟化技术,可以快速启动和停止,但容器本身是无状态的,不保存数据。这意味着当容器被停止或被删除时,容器内部的数据也会被清除。

为了解决这个问题,数据卷容器就出现了。数据卷容器是一种特殊的容器,它被设计用于存储和管理数据,并与其他容器共享数据。数据卷容器可以被挂载到其他容器中,使得这些容器可以访问共享的数据。

数据卷容器通常不运行任何应用程序,它们仅用于存储和管理数据。数据卷容器可以在容器化环境中创建、删除和管理,同时可以通过网络共享和访问数据。这种方式使得数据在容器之间的传输更加方便和高效。

使用数据卷容器有以下几个优势:

1、数据持久化:数据卷容器可以存储数据,并在容器的生命周期中持久存在,即使容器被重新启动或删除,数据也不会丢失。

2、数据共享:数据卷容器可以被多个容器同时挂载和访问,实现数据的共享和协作。

3、灵活性:可以随时创建、删除和管理数据卷容器,使得环境的配置更加灵活和可扩展。

总之,数据卷容器是容器化环境中用于存储和共享数据的一种解决方案,它可以帮助我们实现数据的持久化、共享和灵活管理。

创建数据卷容器,并在其中创建一个数据卷挂载到/dbdata
docker run -it -v /dbdata:/dbdata --name=dbdata nginx /bin/bash 
进入test1容器创建文件测试
docker run -it --volumes-from dbdata --name test1 nginx /bin/bash
ls 
进入test2容器验证结果
docker run -it --volumes-from dbdata --name test2 nginx:1 /bin/bash
ls
ls dbdata

创建测试文件后退出

进入test2查看

 说明

1、可以多次使用--volume-from参数从多个容器挂载多个目录。也可以从其他已经挂载了数据卷的容器来挂载数据卷(类似传递)。

2、再次强调:如果删除了挂载的容器,数据卷不会被自动删除。如果要删除容器的时候同时删除数据卷,需加上-v参数。

以上就是docker持久化和数据卷容器的操作

如有错误欢迎各位大佬批评指正,我们共同进步

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

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

相关文章

【NLP概念源和流】 01-稀疏文档表示(第 1/20 部分)

一、介绍 自然语言处理(NLP)是计算方法的应用,不仅可以从文本中提取信息,还可以在其上对不同的应用程序进行建模。所有基于语言的文本都有系统的结构或规则,通常被称为形态学,例如“跳跃”的过去时总是“跳跃”。对于人类来说,这种形态学的理解是显而易见的。 在这篇介…

Jenkins通过OpenSSH发布WinServer2016

上一篇文章> Jenkins集成SonarQube代码质量检测 一、实验环境 jenkins环境 jenkins入门与安装 容器为docker 主机IP系统版本jenkins10.10.10.10rhel7.5 二、OpenSSH安装 1、下载 官网地址:https://learn.microsoft.com/zh-cn/windows-server/administration/op…

六、JVM-垃圾收集器浅析

垃圾收集器浅析 主 JVM参数 3.1.1 标准参数 -version -help -server -cp3.1.2 -X参数 非标准参数,也就是在JDK各个版本中可能会变动 -Xint 解释执行 -Xcomp 第一次使用就编译成本地代码 -Xmixed 混合模式,JVM自己来决定3.1.3 -XX参数 使用得…

【LeetCode热题100】打卡第45天:倒数第24~20题

文章目录 【LeetCode热题100】打卡第45天:倒数第24~20题⛅前言 最佳卖股票时机含冷冻期🔒题目🔑题解 戳气球🔒题目🔑题解 零钱兑换🔒题目🔑题解 打家劫舍III🔒题目🔑题解…

安装企业级高负载web服务器tomcat,并部署应用

web服务器Tocamt 1.Tocmat简介2.Tocmat安装1.安装jdk2.部署Tomcat1.配置环境变量2.启动tocmat3.Tomcat web管理功能 3.部署jpress应用 1.Tocmat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由…

类的多态性(JAVA)

目录 多态 重写 向上转型 类的多态性例子: 多态的优缺点 多态 所有的OOP语言都会有三个特征: 封装(点击可跳转)继承(点击可跳转)多态 多态体现:在代码运行时,当传递不同类对…

url编码,html编码,uncode编码

目录 url编码 html实体编码 unicode编码 url编码 URL编码遵循下列规则: 每对name/value由&;符分开;每对来自表单的name/value由符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊…

卷积神经网络识别人脸项目—使用百度飞桨ai计算

卷积神经网络识别人脸项目的详细过程 整个项目需要的准备文件: 下载链接: 链接:https://pan.baidu.com/s/1WEndfi14EhVh-8Vvt62I_w 提取码:7777 链接:https://pan.baidu.com/s/10weqx3r_zbS5gNEq-xGrzg 提取码&#x…

《Java极简设计模式》第02章:抽象工厂模式(AbstractFactoty)

作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 源码地址:https://github.com/binghe001/java-simple-design-patterns/tree/master/j…

1.2 eureka注册中心,完成服务注册

目录 环境搭建 搭建eureka服务 导入eureka服务端依赖 编写启动类,添加EnableEurekaServer注解 编写eureka配置文件 启动服务,访问eureka Euraka服务注册 创建了两个子模块 在模块里导入rureka客户端依赖 编写eureka配置文件 添加Services 环境搭建 创建父…

CentOS7系统MBR、GRUB2、内核启动流程报错问题

目录 🥩Linux启动流程 🥩MBR修复 🍭1、模拟损坏 🍭2、重启测试 🍭3、修复MBR 🍭4、测试系统 🥩GRUB2修复 🍭1、模拟损坏 🍭2、修复GRUB2 🍭3、测试系统 &…

docker 资源限制

目录 1、CPU使用率 2、CPU共享比例 3、CPU周期限制 4、CPU核心限制 5、CPU 配额控制参数的混合案例 6、内存限制 7、Block IO 的限制 8、限制bps 和iops docker资源限制 Docker容器技术底层是通过Cgroup(Control Group 控制组)实现容器对物理资…

赛车游戏——【极品飞车】(内含源码inscode在线运行)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄,vue成神之路★ ★ 解决算法,一个专栏就够了★ ★ 架…

【excel常用文本函数大全上】

目录索引 LEFT:公式:举例: RIGHT:公式:举例: MID:公式:举例: FIND:公式:举例: LEN:公式:举例: LEN…

Hive/Spark/Yarn: User Not Found 错误和 Kerberos / AD / OpenLDAP 之间的关系与解释

有时候,当你向Spark或Hive提交作业时,可能会遇到如下的错误: 提交作业使用的用户是example-user-1,但是Yarn返回的错误信息是:该用户不存在。类似的问题大多发生在启动了Kerberos的Hadoop集群上,或者集群集成了Windows AD或OpenLDAP后。本文,我们把这个问题梳理清楚并给…

【力扣】206. 反转链表 <链表指针>

【力扣】206. 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2 输入:head [1,2] 输出:[2,1] 示例 3 输入&#xff1a…

寄存器详解

目录 前言: 通用寄存器 示例: 通用寄存器的划分 汇编指令 cpu物理地址的形成 地址加法器运算示例: 1. 相关部件提供段地址和偏移地址 2. 段地址和偏移地址送入地址加法器 3. 段地址*16 4. 求出物理地址 5. 输出物理地址 段的概念 Deb…

git 常用命令有哪些

Git 是我们开发工作中使用频率极高的工具,下面总结下他的基本指令有哪些,顺便温习一下。 前言 一般项目中长存2个分支: 主分支(master) 和开发分支(develp) 项目存在三种短期分支 &#xff1a…

数据可视化(4)散点图及面积图

1.简单散点图 #散点图 #scatter(x,y) x数据,y数据 x[i for i in range(10)] y[random.randint(1,10) for i in range(10)] plt.scatter(x,y) plt.show()2.散点图分析 #分析广告支出与销售收入相关性 dfcarpd.read_excel(广告支出.xlsx) dfdatapd.read_excel(销售…

【vue】 vue2 监听滚动条滚动事件

代码 直接上代码&#xff0c;vue单文件 index.vue <template><div class"content" scroll"onScroll"><p>内容</p><p>内容</p><p>内容</p><p>内容</p><p>内容</p><p>内容…