第03讲:Docker 容器的数据卷

news2024/11/27 17:43:20

一、什么是数据卷

        数据卷是宿主机中的一个目录或文件,当容器目录或者文件和数据卷目录或者文件绑定后,对方的修改会立即同步,一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷,数据卷的作用:容器数据持久化,外部机器和容器间接通信,容器之间数据交换

思考:
Docker 容器删除后,在容器中产生的数据还在吗?
Docker 容器和外部机器可以直接交换文件吗?
容器之间想要进行数据交互?

在这里插入图片描述

二、如何使用数据卷

2.1、配置数据卷

语法:docker run … –v 宿主机目录(文件):容器内目录(文件) …

2.1.1、案例一

[root@localhost ~]docker run -it --name=c3 -v /root/data:/root/data_container centos:7 /bin/bash
[root@localhost ~]docker run -it --name=c4 -v /root/data:/root/contai1 -v /root/data1:/root/contai2 centos:7

提示:centos:7为docker中下载的镜像名称

Ps:注意事项:
1、目录必须是绝对路径 (宿主机和容器目录都是绝对路径)
2、如果目录不存在,会自动创建
3、可以挂载多个数据卷
配置数据卷后,在/root/data下创建文件,发现会同步到c3容器的data_container目录中,同理反过来也一样,当删除容器后,此时并不影响宿主机/root/data里的内容

2.1.2、案例二:多容器进行数据交换

在这里插入图片描述

第1步、创建启动c3数据卷容器,使用 –v 参数 设置数据卷

[root@localhost ~]#docker run –it --name=c3 –v /volume centos:7 /bin/bash 
[root@localhost ~]#docker inspect c3      #查看c3容器

-v 后面的/volume是容器的目录,那么这个宿主机的目录为什么不见了呢?其实这个时候linux会自动创建一个目录(目录名很长)作为源目录和/volume容器目录相对应。可以通过 docker inspect c3 查看c3容器

第2步:创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷

[root@localhost ~]#docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash
[root@localhost ~]#docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash  

此时c1和c2 挂载到和c3相同的宿主机的目录,在c3容器创建内容,c1和c2都会自动同步 (也就是说在c1和c2的根目录下也有 volume文件夹)
[root@localhost ~]#docker inspect c1
[root@localhost ~]#docker inspect c2
发现c1 c2的宿主机目录和c3相同

2.2、数据卷总结

  • 数据卷概念:宿主机的一个目录或文件
  • 数据卷作用:容器数据持久化、客户端和容器数据交换、容器间数据交换
  • 数据卷容器:创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。通过简单方式实现数据卷配置

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

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

相关文章

基于遥感卫星影像水体提取方法综述

水体提取分类依据及基础 水体提取分类依据 水体提取的方法很多,很多学者也进行了分类,大体上有一个分类框架,主要是基于光学影像的分类,比如王航等[7]将水体提取分成3类,分别是基于阈值法、分类器法和自动化法; 李丹等[8]更深一步进行总结,引入近些年发展火热的基于雷达影像数…

Redisson自定义序列化

配置RedissonClientBean public RedissonClient redissonClient() {Config config new Config();// 单节点模式SingleServerConfig singleServerConfig config.useSingleServer();singleServerConfig.setAddress("redis://127.0.0.1:6379");singleServerConfig.set…

LeetCode二叉树经典题目(六):二叉搜索树

目录 28. LeetCode617. 合并二叉树 29. LeetCode700. 二叉搜索树中的搜索 30. LeetCode98. 验证二叉搜索树 31. LeetCode530. 二叉搜索树的最小绝对差 32. LeetCode501. 二叉搜索树中的众数 33. LeetCode236. 二叉树的最近公共祖先​ 28. LeetCode617. 合并二叉树 递归&…

Hi3861鸿蒙物联网项目实战:智能安防报警

华清远见FS-Hi3861开发套件,支持HarmonyOS 3.0系统。开发板主控Hi3861芯片内置WiFi功能,开发板板载资源丰富,包括传感器、执行器、NFC、显示屏等,同时还配套丰富的拓展模块。开发板配套丰富的学习资料,包括全套开发教程…

Windows11 系统打开IE浏览器的方式(完整版)

前言 大家好,好久不见! 1、最近疯狂加班,旧电脑不太给力,换了新电脑,嘎嘎开心;开心之余发现新电脑是Win11系统的,但是IE浏览器找不到了,由于我的某些工作需要用到IE浏览器&#xf…

Vue2前端路由(vue-router的使用)、动态路由、路由和视图的命名以及声明式和编程式导航

目录 一、vue2的前端路由(vue-router) 1、路由:页面地址与组件之间的对应关系 2、路由方式:服务器端路由、前端路由 3、前端路由:在前端维护一组路由规则(地址和组件之间的对应关系)&#xf…

【UE4 第一人称射击游戏】34-制作一个简易计时器

上一篇:【UE4 第一人称射击游戏】33-创建一个迷你地图本篇效果:可以看到左上角有个简易的关卡计时器在倒计时步骤:打开“FPSHUD”,拖入一个图像控件图像选择“Timer_Backing”,尺寸改为4719拖入3个文本控件大小为1210字…

学习ffmpeg-录屏实现记录

项目需要一个录屏的功能,之前看到了一个使用Qt计时器截图avilib生成AVIffmpeg合并视频音频的方式:Qt C 录屏录音功能实现(avilibffmpeg)以及动态库生成https://blog.csdn.net/qq_35769071/article/details/125323624使用后&#x…

【.dll 没有被指定在windows上运行】

修复(重新注册DLL)的具体步骤如下: 方法一: 1、快捷键winr打开“运行”输入cmd,点击确定打开命令提示符窗口。 2、复制:for %1 in (%windir%\system32*.dll) do regsvr32.exe /s %1 命令,在打开的管理员…

ubuntu安装vue

首先建议使用ubuntu18.04以上的系统,不然会有类似fcntlGLIBC_2.28‘未定义的引用的报错 VUE官网:http://caibaojian.com/vue/guide/installation.html 其中安装说明只写到:npm install vue 我们还需要安装node.js、npm 1、安装 NVM&#xf…

Windows安装TensorRT

文章目录前言TensorRT下载TensorRT安装参考资料前言 本文将介绍Windows如何安装TensorRT。本文的基础是:Windows安装PytorchCUDA环境 TensorRT下载 进入官方网站:https://developer.nvidia.com/nvidia-tensorrt-8x-download 寻找自己对应的版本&#…

RabbitMQ之Work Queue(工作队列)

前言:大家好,我是小威,24届毕业生,曾经在某央企公司实习,目前在某税务公司。本篇文章将记录和分享RabbitMQ工作队列相关的知识点。 本篇文章记录的基础知识,适合在学Java的小白,也适合复习中&am…

【自学Python】Python string转bytes

Python string转bytes Python string转bytes教程 在 Python 中,bytes 类型和 字符串 的所有操作、使用和内置方法也都基本一致。因此,我们也可以实现将字符串类型转换成 bytes 类型。 Python string转bytes方法 如果字符串内容都是 ASCII 字符&#…

从0到1完成一个Vue后台管理项目(十六、后端分页方法以及分页组件的封装以及复用)

往期 从0到1完成一个Vue后台管理项目(一、创建项目) 从0到1完成一个Vue后台管理项目(二、使用element-ui) 从0到1完成一个Vue后台管理项目(三、使用SCSS/LESS,安装图标库) 从0到1完成一个Vu…

C++STL——list类与模拟实现

Listlistlist的常用接口模拟实现完整代码list与vector的区别list list是一个带头双向循环链表。 list文档介绍:https://legacy.cplusplus.com/reference/list/list/ list因为是链表结构,所以没有 [] 去访问数据的方式,只有用迭代器&#xff…

第十六届中国大数据技术大会五大分论坛顺利举办!

1月8日下午,由苏州市人民政府指导、中国计算机学会主办、苏州市吴江区人民政府支持,CCF大数据专家委员会、苏州市吴江区工信局、吴江区东太湖度假区管委会、苏州市吴江区科技局、苏州大学未来科学与工程学院及DataFounain数联众创联合承办的第十六届中国…

基于java springboot+mybatis学生学科竞赛管理管理系统设计和实现

基于java springbootmybatis学生学科竞赛管理管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言…

10.Isaac教程--在Docker中通过模拟训练目标检测

在Docker中通过模拟训练目标检测 文章目录在Docker中通过模拟训练目标检测怎么运行的主机设置硬件要求软件要求NGC Docker 注册表设置第一次运行数据集生成配置您的工作区Jupyter 变量设置开始训练添加您自己的 3D 模型故障排除接下来人工智能中的一个常见问题是训练样本的数据…

02【Http、Request】

文章目录02【Http、Request】一、HTTP协议1.1 HTTP协议概述1.1.1 HTTP协议的概念1.1.2 HTTP协议的特点:2.1 HTTP请求的组成2.1.1 请求行2.1.2 请求头2.1.3 请求体二、HttpServletRequest对象2.1 HttpServletRequest对象简介2.2 HttpServletRequest的使用2.2.1 请求行…

Redis未授权访问漏洞(三)Redis写入反弹连接定时任务

前言 系列文章 Redis未授权访问漏洞(一)先导篇 Redis未授权访问漏洞(二)Webshell提权篇 Redis写入反弹连接任务 环境准备 攻击机: Centos7 IP:192.168.142.44 靶机:Centos7 IP:192.168.142.66 我们先来回顾一下corntab定时任务的一些基本命令&#xf…