Docker-数据卷的挂载

news2024/11/16 18:01:46

文章目录

  • 数据卷概念
  • 数据卷实现机制
  • 数据卷特性
  • 数据卷操作
    • 数据卷挂载通用命令
    • 匿名挂载
    • 具名挂载
    • 数据卷继承
    • 容器数据卷只读
    • 容器数据卷读写-默认
  • 总结

数据卷概念

为了很好的实现数据保存数据共享,Docker提出了Volume这个概念,简单的说就是绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷

数据卷实现机制

创建容器时,将宿主机的目录与容器内的目录进行映射,可以通过修改宿主机的某个目录从而去影响容器,而且这个操作是双向绑定,容器内的操作也会影响到宿主机,实现备份功能。但是容器被删除的时候,宿主机的内容并不会被删除,因为底层是通过拷贝实现的。如果多个容器挂载的是同一个目录,其中一个容器被删除,其他容器内的数据不会受到影响,同理,底层也是拷贝实现的

数据卷特性

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除

容器和宿主机之间的数据卷属于引用关系,数据卷是从外界挂载到容器内部的,所以可以脱离容器的生命周期而独立存在,正式由于数据卷的生命周期并不等同于容器的生命周期,在容器退出或者删除以后,数据卷依然不会受到影响,数据卷的生命周期一直持续到没有容器使用它为止

数据卷操作

数据卷挂载通用命令

创建容器时添加-v参数,格式为宿主机:容器目录,例如

sudo docker run -di -v /docker/mysql/data:/usr/local/data --name mysql01 -e MYSQL_ROOT_PASSWORD=root -d mysql

sudo docker run -di -v /docker/mysql/data:/usr/local/data --name mysql02 -e MYSQL_ROOT_PASSWORD=root -d mysql

宿主机在/docker/mysql/data下新增test.txt文件
在这里插入图片描述
登陆进入mysql01容器内在/usr/local/data下发现test.txt文件
在这里插入图片描述
登陆进入mysql02容器内在/usr/local/data下发现test.txt文件
在这里插入图片描述
当我退出,停止,删除容器mysql02时,宿主机上test.txt文件依旧存在
在这里插入图片描述
重新启动容器mysql02,在容器mysql02上删除test.txt,宿主机和容器mysql01的test.txt文件也都不存在了

匿名挂载

匿名挂在只需要写容器目录即可,宿主机对应的目录会在/var/lib/docker/volumes中生成
格式为-v 容器目录,例如

docker run -di -v /usr/local/data --name mysql01 -e MYSQL_ROOT_PASSWORD=root -d mysql

启动容器后,通过docker inspect mysql01 知道当前容器数据卷的挂载情况
在这里插入图片描述
若你使用的是mac系统,它找不到卷目录,可以执行
docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
然后直接可以转入到var/lib/docker/volumes目录下操作文件即可

具名挂载

具名挂载就是给数据卷起了个名字,容器外对应的目录会在var/lib/docer/volumes中生成
格式为-v 卷名称:容器目录,例如:

docker run -di --privileged=true -v docker_mysql_data:/usr/local/data --name mysql03 -e MYSQL_ROOT_PASSWORD=root -d mysql

执行docker volume ls 查看volume数据卷信息,其中docker_mysql_data就是卷名称,其它卷名称都是默认生成的ID号
在这里插入图片描述
通过docker volume inspect 数据卷名称可以查看该数据卷对应宿主机的目录地址

docker volume inspect docker_mysql_data

在这里插入图片描述

数据卷继承

若多个容器使用的是相同的数据卷挂载地址,那后续的容器启动时可以选择继承容器的数据卷挂载。使用--volumes-from 数据卷容器数据卷容器可以是容器的名称,
优势:如果需要创建大量的相同目录映射关系,可以简化命令便于操作和记忆
例如:
先启动mysql01容器,使用-v指定数据卷的挂载

docker run -di -v /Users/apple/docker/mysql/data:/usr/local/data --name mysql02 -e MYSQL_ROOT_PASSWORD=root -d mysql

执行docker inspect mysql01查看数据卷挂载
在这里插入图片描述
容器mysql02和mysql03使用都是同一个数据卷挂载,可以在启动容器时使用--volumes-from 数据卷容器指定使用mysql01的数据卷容器,例如

docker run -di --volumes-from mysql01 --name mysql02 -e MYSQL_ROOT_PASSWORD=root -d mysql

指定docker inspect mysql02查看数据卷挂载
在这里插入图片描述

容器数据卷只读

只能通过修改宿主机内容实现对容器的数据管理,执行docker run -it -v /宿主机目录:/容器目录:ro 镜像名 。例如 :

docker run -di -v /Users/apple/docker/mysql/data:/usr/local/data:ro --name mysql01 -e MYSQL_ROOT_PASSWORD=root -d mysql

在这里插入图片描述

容器数据卷读写-默认

宿主机和容器双向操作数据,执行docker run -it -v /宿主机目录:/容器目录:rw 镜像名 或者docker run -it -v /宿主机目录:/容器目录 镜像名
例如 :

docker run -di -v /Users/apple/docker/mysql/data:/usr/local/data:rw --name mysql02 -e MYSQL_ROOT_PASSWORD=root -d mysql

总结

数据卷是Docker容器提出来概念,目的是用来持久化容器的数据,存在于宿主机上,独立于容器的生命周期,不会在容器删除后删除数据。Docker提供的数据卷挂载方式很多,可以通过具名挂载,匿名挂载或者数据卷继承方式等,同样可以指定容器目录的可读可写权限,若只可读即只能通过宿主机进行数据管理

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

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

相关文章

upload-labs 通关方法

目录 Less-1(JS前端验证) Less-2(MIME验证) Less-3(黑名单,特殊过滤) Less-4(黑名单验证,.htaccess) Less-5(黑名单,点空格点绕过…

「项目」负载均衡在线OJ(ONLINE_JUDGE)系统

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

Unity 开发Hololens,制作面板跟随眼镜一起移动,(面板跟踪)

Hololens滑动框以及面板跟踪 创建空物体,并添加组件 SolverHandler、RedialView、FollowMeToggle 创建按钮,控制停止/开始跟踪 创建一个Hololens自带的按钮放到右上角,并添加事件 创建蓝色背景板 创建空物体Backplate,下面再…

专题汇编 | ChatGPT引领AIGC新浪潮(一)

ChatGPT的产生与迭代 2022年11月末,美国人工智能研究实验室OpenAI推出ChatGPT。上线的ChatGPT只用了2个月,活跃用户数就突破了1亿,创造了应用增速最快的纪录。 ChatGPT是什么 ChatGPT是一种人工智能技术驱动的自然语言处理(Natural Language Processing,NLP)工具,使用的…

【Linux学习】进程基础API

下面是有关进程基础API的相关介绍,希望对你有所帮助! 小海编程心语录-CSDN博客 目录 1. 僵尸进程与孤儿进程 1.1 孤儿进程 1.2 僵尸进程 2. 监视子进程 2.1 wait() 2.2 waitpid() 3. 执行新程序 exec族函数 4. 守护进程 1. 僵尸进程与孤儿进程…

PHP报错 Notice: Undefined index: action in

upload靶场PHP报错 Notice: Undefined index: action in 修改 php.ini 中的 error配置下错误显示方式:将error_reporting E_ALL 修改为 error_reporting E_ALL & ~E_NOTICE 修改后重启下APCHE服务即可。

Java方法的基本用法

Java方法的基本用法 前言一、什么是方法方法存在的意义示例 二、方法定义语法基本语法代码示例注意事项 三、方法调用的执行过程基本规则代码示例计算两个整数相加计算 1! 2! 3! 4! 5! 四、实参和形参的关系代码示例交换两个整型变量原因分析解决办法 五、没有返回值的方法…

SWM190系列应用

一、SWM190系列IO端口应用 1.1、SWM19SCBT6 B0端口引起的漏电流 SWM19S的IAP升级必须上拉B0,但B0会漏电,B0接高对方不止需要改版还会增加大概50ua的功耗。由于芯片内置的ROMCode默认B0脚切下拉。所以说接高电平会漏电。 在APP应用中,测试了直…

【C语言】strstr函数的使用和模拟

前言 今天给大家带来一个字符串函数,strstr()的使用介绍和模拟实现。 模拟实现这个函数,可以帮助我们更深刻地理解这个函数的功能和提高解决字符串相关问题的能力,有兴趣的话就请往下看吧。 strstr函数介绍 函数功能: strstr函…

CentOS 服务器系统常用命令

本文系统centos 8.5 1 w 显示当前登录到系统的用户信息,比如IP ,执行程序等 2 who 用于显示当前登录到系统的用户列表 3 last 显示最近登录到系统的用户列表. 4 df -h 查看磁盘信息 5 fdisk -l 查看机器所挂硬盘个数及分区情况. 6 passwd 修改密码 7 find …

AWS容器之Amazon ECS

Amazon Elastic Container Service(Amazon ECS)是亚马逊提供的一种完全托管的容器编排服务,用于在云中运行、扩展和管理Docker容器化的应用程序。可以理解为Docker在云中对应的服务就是ECS。

RPC原理技术

RPC原理技术 背景介绍起源组件实现工作原理 背景 本文内容大多基于网上其他参考文章及资料整理后所得,并非原创,目的是为了需要时方便查看。 介绍 RPC,Remote Procedure Call,远程过程调用,允许像调用本地方法一样调…

VLAN创建及配置

V-- 虚拟 LAN ---局域网 ---地理覆盖范围较小的网络 MAN ---城域网 WAN ---广域网 VLAN ---虚拟局域网 --- 交换机和路由器协同工作后,将原先的一个广播域,逻辑上切分为多个 第一步:创建VLAN [Huawei]display vlan---查看VLAN信息 VID -- VLAN ID ----…

专为汽车内容打造的智能剪辑解决方案

汽车内容创作已成为越来越多车主和汽车爱好者热衷的活动。然而,如何高效、便捷地将行车途中的精彩瞬间转化为高质量的视频作品,一直是困扰着广大用户的一大难题。美摄科技凭借其深厚的视频处理技术和智能分析能力,推出了专为汽车内容记录而生…

C#Csharp,SharpPcap网络抓包程序及源码(适合网络分析直接使用或源码二次开发)

目录 1.程序简介2.程序截图3.程序源码 1.程序简介 C#Csharp,SharpPcap网络抓包程序及源码(适合网络分析直接使用或源码二次开发) 2.程序截图 3.程序源码 https://download.csdn.net/download/xzzteach/89325817

【Unity学习笔记】第十七 Quaternion 中 LookRotation、Lerp、Slerp、RotateTowards等方法辨析与验证

转载请注明出处: https://blog.csdn.net/weixin_44013533/article/details/138909256 作者:CSDN|Ringleader| 目录 Quaternion API 速览FromToRotation在Transform中的应用LookRotation 中upwards取Vector3.up和 transform.up的区别旋转时如何保持Y轴不变&#xff…

软管的高速非接触外径测量方案!单双轴测径仪多种类型!

一、传统测量方式的局限 在软管外径的测量领域,传统方式往往面临多重挑战: 1、挤压变形:传统的测量方式可能导致软管因挤压而变形,进而影响测量数据的准确性。 2、人为误差:测量结果常因人为因素而有所差异&#xff0c…

文本转语音软件-TTSMaker

一、TTSMaker介绍 TTSMaker(马克配音)是一款免费的文本转语音工具,提供语音合成服务,支持多种语言,包括中文、英语、日语、韩语、法语、德语、西班牙语、阿拉伯语等50多种语言,以及超过300种语音风格。 可…

春秋云境CVE-2023-50564

简介 Pluck-CMS v4.7.18 中的 /inc/modules_install.php 组件,攻击者可以通过上传一个精心制作的 ZIP 文件来执行任意代码。 正文 1.进入靶场 2.弱口令进入 admin123 3.找上传点 4.将木马打包,上传一句话木马 5.蚁剑连接6.得到flag

前端 CSS 经典:filter 滤镜

前言:什么叫滤镜呢,就是把元素里的像素点通过一套算法转换成新的像素点,这就叫滤镜。而算法有 drop-shadow、blur、contrast、grayscale、hue-rotate 等。我们可以通过这些算法实现一些常见的 css 样式。 1. drop-shadow 图片阴影 可以用来…