Docker容器数据持久化

news2024/12/25 12:18:48

Docker容器数据持久化

Docker容器数据卷:volumes

1、什么是数据卷?

       数据卷是经过特殊设计的目录,可以绕过联合文件系统,为一个或者多个容器提供访问,数据卷设计的目的,在于数据的永久存储,它完全独立于容器的生存周期,因此,docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理,同一个数据卷可以只支持多个容器的访问。

        volumes: 是官方比较推荐也是大型的集群比较常见的一种方式.可以在宿主机或者云端或者在某一个区域创建一块磁盘专门存放容器里的数据或文件,volumes是Docker持久化数据的最好方式,因为与容器的耦合度最低,多个容器可以同时访问一个volumes

2、数据卷的特点

  • 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会被拷贝到新初始化的数据卷中
  • 数据卷可以在容器之间共享和重用
  • 可以对数据卷里的内容直接进行修改
  • 数据卷的变化不会影响镜像的更新
  • 数据卷在宿主机是行会一直存在,即使挂载数据卷的容器已经被删除

3、数据卷常用命令

创建数据卷

[root@zch01 ~]# docker volume create test run -itd -p 8081:80 -v test01:/usr/share/nginx/html nginx

删除卷

命令格式: docker volume rm 卷名

[root@zch01 ~]# docker volume rm test

清理无用数据卷

docker volume prune

查看所有数据卷

[root@zch01 ~]# docker volume ls

查看数据卷详细信息:

命令格式: docker volume inspect 卷名

[root@zch01 ~]# docker volume inspect 5d0ffa3f7a3fd6f401f8d9cfdc46623195afce95c5c309d00d10cb65a65bb38e

容器添加数据卷

[root@zch01 ~]# docker run -v /opt/data:/data -itd centos /bin/bash

/opt/data:为宿主机目录

/data:为容器的里的目录

宿主机的opt/data目录下创建的数据会同步到容器的/data目录下

数据卷添加访问权限

[root@zch01 ~]# docker run --name test -v /opt/data:/data:ro -itd centos /bin/bash

data:ro: 添加只读权限,在容器中只能对data目录只读操作

/opt/data:宿主机目录的操作权限不限

4、数据卷的使用

编写DockerFile文件使用数据卷构建镜像

[root@zch01 ~]# vi dockerfile

FROM centos

VOLUME ["/data1","/data2"]

CMD /bin/bash

构建镜像:

[root@zch01 ~]# docker build -t="volumeimage" .

启动容器:

[root@zch01 ~]# docker run --name volumetest -it volumeimage

进入容器查看会有:data1、data2两个目录

制作数据卷容器

什么是数据卷容器:命名容器为挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器,就叫做数据卷容器。

命令格式:docker run --volumes-from [container name]

构建镜像:

[root@zch01 ~]# vi dockerfile

FROM centos

VOLUME ["/data1","/data2"]

CMD /bin/bash

[root@zch01 ~]# docker build -t="datavolume" .

创建数据卷容器

[root@zch01 ~]# docker run --name data-volume -itd datavolume

datavolume:有两个目录data1、data2

进入到数据卷中可以查看

[root@zch01 ~]# docker exec -it data-volume /bin/bash

创建容器使用数据卷容器

在前面已经创建好了数据卷容器,下面在创建新容器是直接挂在数据卷容器

使用命令选项:--volumes-from

[root@zch01 ~]# docker run --name zch01 --volumes-from data-volume -itd centos /bin/bash

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

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

相关文章

Java-day11(集合)

集合 1.集合框架 用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组 Java集合可分为Collection和Map两种体系 Collection接口 Set:元素无序,不可重复的集合----(类似数学中的集合) List:元素有序,可重…

linux内网yum源服务器搭建

1.nginx: location / {root /usr/local/Kylin-Server-V10-SP3-General-Release-2303-X86_64;autoindex on;autoindex_localtime on;autoindex_exact_size off; } 注:指定到镜像的包名 2.修改yum源地址 cd /etc/yum.repos.d/vim kylin_x86_64.repo 注: --enabled设置为1 3.重…

Android Studio 的github 工程克隆

上文介绍了Android Studio 里的"Git 建立和简单操作。本文介绍从github 上的工程fork 和clone到本地,然后学习和改进。 本文参考 https://learntodroid.com/how-to-use-git-and-github-in-android-studio/ 克隆clone Github 仓库: 先 Fork 你选择…

仓储23代拣货标签操作指导

服务器使用 V1.4基站已经内置服务程序,无需搭建服务;可跳至第1.4部分 服务器搭建 安装mysql5.7, 创建db_wms数据库并导入原始数据库文件 安装jdk1.8, 配置java环境变量 下载tomca8.0, 部署wms.war到tomcat, 并启动tomcat 下载资源 Windows 64bit: …

知乎如何精准引流?

知乎,用过的人都知道,它是一个相当重要的引流平台。因为它用户规模大、粘性高、活跃性强、百度权重高,流量也相对精准,这也意味者变现能力强。 做引流的朋友都知道,想要把用户从别的平台引流到自己微信上,就…

Gradle项目如何开启debug?

一、打开Idea的终端,输入命令gradle build --debug 开启构建DeBug模式 二、点击编辑配置,并填写自己debug的名称 三、编辑好debug配置后,点击以下debug按钮,就可以开始调试代码了。

vue3下的密码输入框(antdesignvue)

参考:vue下的密码输入框 注意:这是个半成品,有些问题(输入到第6位的时候会往后窜出来一个空白框、光标位置会在数字前面),建议不采用下面这种方式,用另外的(画六个input框更方便) 效果预览 实现思路 制作6个小的正方形div 用一个input覆盖在6个div上 给input设置透明(…

LabVIEW开发油气井管道内无线通信微波系统

LabVIEW开发油气井管道内无线通信微波系统 由于石油和天然气行业的重要性,许多公司和研究人员正在研究和开发新的通信和传感器技术。需要解决的问题与管道状况、地震活动、腐蚀水平、可能的气体泄漏检测和其他性能问题的实时和连续监测有关。处理这些问题的最广泛使…

forlium 笔记 Map

用于创建交互式地图 1 主要参数 1.1. location 地图位置 地图的经纬度 import foliumm folium.Map(location[31.186358, 121.510256],zoom_start15)m 1.2 tiles 内置样式 默认是OpenStreetMap 1.2.1 Stamen Terrain 它强调了地形特征,如山脉、河流和道路 m …

9、Spring_事务管理

六、Spring 事务管理 1.Spring 事务简介 事务概述:保证数据库操作同时成功或者同时失败 Spring 事务的概述:在数据层保证数据库操作同时成功或者同时失败 2.转账案例分析 转账肯定有一个业务方法:给转出用户减钱,给转入用户加…

Java+Github+Jenkins部署

Java项目—Jenkins部署笔记 一,准备 一台服务器操作系统,示例为ubuntu 22.0.4 可运行lsb_release -a查看 二,安装 docker 更新软件包列表: sudo apt update安装必要的软件包,以便使用HTTPS通过APT下载软件包&#x…

财务大模型,产业路向何方?

无论过去还是将来,财务的角色和意义都不会被颠覆,只会被清晰化,只会回归到本源。 作者|思杭 编辑|皮爷 出品|产业家 “今年,我们被市场倒逼着做数字化转型。一切都被打乱了,像这样的转变是前所未有的。到了8月&…

泰迪大数据实训平台产品介绍

大数据产品包括:大数据实训管理平台、大数据开发实训平台、大数据编程实训平台等 大数据实训管理平台 泰迪大数据实训平台从课程管理、资源管理、实训管理等方面出发,主要解决现有实验室无法满足教学需求、传统教学流程和工具低效耗时和内部教学…

hadoop 学习:mapreduce 入门案例三:顾客信息与订单信息相关联(联表)

这里的知识点在于如何合并两张表,事实上这种业务场景我们很熟悉了,这就是我们在学习 MySQL 的时候接触到的内连接,左连接,而现在我们要学习 mapreduce 中的做法 这里我们可以选择在 map 阶段和reduce阶段去做 数据: …

聚合支付-第3章-支付宝支付接入指南

惠民支付 第3章讲义-支付宝接入指南 支付宝接入步骤: 1、进入网址https://open.alipay.com/develop/manage 2、扫码登录支付宝账号,控制台,最下边有一个沙箱环境 3、在“支付宝开放平台开发助手”软件中生成密钥,点击生成密钥,保…

Axure RP 8.1.0.3400(原型设计工具)

Axure RP 8是一款原型设计工具,它提供了丰富的功能和工具,帮助用户创建高质量的网页、移动应用和桌面软件原型。以下是Axure RP 8的一些特色介绍: 强大的交互设计:Axure RP 8支持创建复杂的动画和过渡效果,让你的原型更…

一文彻底扒光 Handler

作者:HenAndroid 典型的生产者-消费者模式。 Android跨进程要掌握的是Binder, 而同一进程中最重要的应该就是Handler 消息通信机制了。我这么说,大家不知道是否认同,如果认同,还希望能给一个关注哈。 Handler 是什么?…

AI智能语音识别模块(一)——离线模组介绍

文章目录 离线语音控制模块简介引脚定义开发平台总结 离线语音控制模块 简介 这是一款低成本,低功耗,小体积的高性价比离线语音识别开发板。能快速学习、验证离线语音控制各种外设,如继电器、LED灯,PWM调光等。 板载了Micro USB接…

MySQL DATE_SUB的实践

函数简介DATE_SUB()函数从DATE或DATETIME值中减去时间值(或间隔)。 下面说明了DATE_SUB()函数的语法: DATE_SUB(start_date,INTERVAL expr unit); DATE_SUB()函数接受两个参数: start_date是DATE或DATETIME的起始值。 expr是一个字符串,用于确…

哪个牌子的电视盒子好用?小编盘点复购率最高电视盒子排行榜

复购率可以体现出产品评价如何,电视盒子是我们经常要购买的数码产品,那么电视盒子哪些品牌的复购率最高?用户忠实度最高呢?想了解哪个牌子的电视盒子好用,可以看看小编根据复购情况整理的电视盒子排行榜: ●…