docker小白第六天

docker小白第六天

容器数据卷是什么

首先,容器卷有个坑:容器卷需要加入privileged=true,如下图所示,是为了解决permission denied的问题。其中“挂载”的意思是相当于一个硬盘插到主机上。使用该命令。是扩大容器的权限解决挂载目录没有权限的问题。
在这里插入图片描述

docker run -d -p 5000:5000 -v /cz/myregistryl:/tmp/registry --privileged=true registry
这也印证了前文运行本地私有库registry的命令,-v是添加自定义的容器卷,仓库被挂载在宿主机/cz/myregistryl路径下,/tmp/registry表示的是容器内的路径。

实际上是完成了以后台守护式启动一个容器,实现了容器与宿主机之间的信息共享和互通互联。
在这里插入图片描述
总结:1、卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性。
2、卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。
3、将docker容器内的数据保存进宿主机的磁盘中。

运行一个带有容器卷的容器实例

docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name=u1 ubuntu
以前台交互式的形式新建一个容器,同时--privileged=true增加挂载的权限,-v开始在宿主机的tmp/host_data目录挂载一个容器的tmp/docker_data,容器名字叫做u1,使用的镜像是ubuntu。另外目录文件不需要自己额外创建,在执行命令的时候,docker会自动创建所需的目录文件夹。

在容器内cd进刚刚的目录,然后新建一个txt文件。

在这里插入图片描述
在主机的cd进刚刚目录下,可以看到多出了一txt文件,很明显是容器内同步过来的。
在这里插入图片描述

查看容器卷是否挂载成功

docker inspect 容器id

在宿主机执行该命令,暴露容器内各种信息,可以看到mounts这里,有挂载的容器卷的相关信息。
在这里插入图片描述
当容器被停掉,然后在宿主机的共享挂账目录下新建或删除一个文件,在启动容器,会发现,容器的共享挂载目录下也会有同样新建或删除的一个文件。

在宿主机的命令行内执行以下命令
docker stop 容器id
cd 进共享的目录
rm -f host_data.txt
启动 容器
docker start 容器id
进入交互式容器的命令行
docker exec -it 容器id /bin/bash
cd进容器的共享目录
ls

在这里插入图片描述
总结:

  • docker容器修改,主机同步共享获得修改内容
  • 主机修改,docker容器同步共享获得修改内容
  • 停止docker容器,主机修改,docker容器重启后,数据同步获得。

容器卷的ro和rw读写说明

默认情况下,是开启读写的rw权限。
有些特殊情况需要开启只读,挂载时执行如下命令即可

docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
容器实例内部被限制,只能读取不能写

在容器内此时执行新建一个文件,则会报错提示,不能新建,只能读文件系统,此时如果宿主机的共享目录下写入一个内容,则可以同步到容器内,容器可以读取到。
在这里插入图片描述

容器卷之间的继承

即容器1完成和宿主机的映射后,容器2继承容器1的卷规则。
在宿主机上共享目录下新建文件hostdata.txt
在这里插入图片描述
在容器u1上的共享目录下新建u1.data.txt
在这里插入图片描述

docker run -it --privileged=true --volumes-from 父类 --name=u2 ubuntu
将父类替换为容器1的名字后执行,新建一个名字为u2的容器,容器的卷规则继承容器1.

在这里插入图片描述
发现新建的容器u2,也有共享目录tmp/docker_data,该目录下也有两个文件。
在这里插入图片描述
总结:此时如果docker stop 容器id停止任意一个容器,然后在其他主机或者另一个容器中的共享目录修改文件,在恢复docker start 容器id启动容器后,共享目录下同样会发生文件的变动。(因为是停止容器,并不是删除容器,并未删除容器的配置信息)

docker常规安装简介

例如下图左侧所示,因为微服务,会安装各种各样的包,库,组件等,还需要环境配置,比较麻烦。而右侧使用docker,只需要将配置好的包,库,组件的镜像pull下载,然后在docker容器内run运行即可。

在这里插入图片描述
总体安装的涉及步骤大概如下

docker search 镜像名
docker pull 镜像名
docker images
docker run 镜像名
docker stop 镜像名
docker rmi 镜像名

在这里插入图片描述

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

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

相关文章

力扣面试题 16.19. 水域大小(java DFS解法)

Problem: 面试题 16.19. 水域大小 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 该问题可以归纳为一类遍历二维矩阵的题目,此类中的一部分题目可以利用DFS来解决,具体到本题目(该题目可以的写法大体不变可参看前面几个题目&#…

几种常见开关电源电路图

用UC3842做的开关电源的典型电路见图1。过载和短路保护,一般是通过在开关管的源极串一个电阻(R4),把电流信号送到3842的第3脚来实现保护。 当电源过载时,3842保护动作,使占空比减小,输出电压降…

旅游服务平台可视化大屏界面,UI设计PS资料

大屏通过实时的数据展示,可及时发现数据的变化和异常,以便及时采取措施。现分享蓝色简约大气旅游服务平台、蓝色渐变科技旅游服务平台可视化界面的Photoshop源文件,供UI设计师们快速获取PSD源文件完成工作。 若需更多 大屏组件,请…

图纸加密软件哪个好用丨强烈推荐这个CAD图纸加密小技巧

只有身处设计行业的老板,也会设身处地的感受到,图纸加密软件的重要性! 因为一个图纸可能就是一单生意,一单生意可能就能决定公司一年的营收。所以,选择适合企业饿图纸加密软件势在必行。 哪个图纸加密软件比较好用呢&…

下载svn client,小乌龟

给兄弟们提供一个下载svn client的软件连接 不好用包退货 https://sourceforge.net/projects/tortoisesvn/ 点击download即可

PyQt6 QFontDialog字体对话框控件

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计50条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

Java 数据结构篇-实现堆的核心方法与堆的应用(实现 TOP-K 问题:最小 k 个数)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 堆的说明 2.0 堆的成员变量及其构造方法 3.0 实现堆的核心方法 3.1 实现堆的核心方法 - 获取堆顶元素 peek() 3.2 实现堆的核心方法 - 下潜 down(int i) 3.3 实…

嵌入式串口输入详细实例

学习目标 掌握串口初始化流程掌握串口输出单个字符掌握串口输出字符串掌握通过串口printf熟练掌握串口开发流程学习内容 需求 串口循环输出内容到PC机。 串口数据发送 添加Usart功能。 首先,选中Firmware,鼠标右键,点击Manage Project Items 接着,将gd32f4xx_usart.c添…

xcode无线真机调试详细图文步骤

步骤一、 步骤二: 步骤三: 配置完到这里,点击真机右键,菜单栏并未出现connect via ip address 选项,也没出现无线连接的小地球图标,别慌,接着进行下一步操作即可。 步骤四: 1.打开…

什么是同源策略?

同源 同源指的是URL有相同的协议、主机名和端口号。 同源策略 同源策略指的是浏览器提供的安全功能,非同源的RUL之间不能进行资源交互 跨域 两个非同源之间要进行资源交互就是跨域。 浏览器对跨域请求的拦截 浏览器是允许跨域请求的,但是请求返回…

手机端升级ChatGPT失败怎么办?解决方案

昨天一个朋友说他手机端升级失败如下图 其实手机端对IP环境要求更严格,升级失败很正常,解决办法就是使用电脑端就可以了,电脑端对IP环境相对来说没有手机那么严格 不管手机电脑,都要用最纯净的IP才行,如果不行&#xf…

MyBatis——MyBatis的CRUD(增删改查)

1.MyBatis的CRUD 创建工程&#xff1a; 1.1.查询 1.1.1.单个参数绑定 //单个参数传递public User findUserById(Integer id);<!--parameterType:指定输入参数的类型resultType&#xff1a;指定数据结果封装的数据类型#{id}&#xff1a;它代表占位符&#xff0c;相当于原来…

大数据讲课笔记5.1 初探MapReduce

文章目录 零、学习目标一、导入新课二、新课讲解&#xff08;一&#xff09;MapReduce核心思想&#xff08;二&#xff09;MapReduce编程模型&#xff08;三&#xff09;MapReduce编程实例——词频统计思路1、Map阶段&#xff08;映射阶段&#xff09;2、Reduce阶段&#xff08…

【Java异常】idea 报错:无效的目标发行版:17 的解决办法

【Java异常】idea 报错&#xff1a;无效的目标发行版&#xff1a;17 的解决办法 一&#xff0c;问题来源 springcloud的第一个demo项目就给我干趴了 二、原因分析 java: 无效的目标发行版: 17 原因就是 JDK 版本不对。从 IDEA 编辑器中可以找到问题的原因所在&#xff0c;…

ImportError: cannot import name ‘calcsize‘ from ‘struct‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

英文表示数字_分支结构 C语言xdoj146

题目描述&#xff1a;输入一个0~9的一位整数&#xff0c;输出其对应的英文单词。要求用switch结构完成。 示例&#xff1a; 输入&#xff1a;0 输出&#xff1a;zero 输入&#xff1a;8 输出&#xff1a;eight #include <stdio.h>//英文表示数字_分支结构 int main() {in…

爬虫中scrapy模块的概念作用和工作流程

scrapy的概念和流程 学习目标&#xff1a; 了解 scrapy的概念了解 scrapy框架的作用掌握 scrapy框架的运行流程掌握 scrapy中每个模块的作用 1. scrapy的概念 Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。 Scrapy 使…

状态管理之复杂对象

前面我们学习的State、Prop、Link、Provide、Consume这些装饰器都只能更新对象的直接赋值、对象属性赋值&#xff1b;如果对象的属性又是一个对象&#xff0c;也就是嵌套对象&#xff0c;那么对嵌套对象的属性的更新是不会被观察到的&#xff0c;所以复杂状态管理用于解决该问题…

前后端分离跨域问题的OPTIONS请求

本篇文章用于个人的问题记录 问题描述: 使用了springbootvue3做前后端分离,使用sa-token做登录认证 由于sa-token的前后端分离的登录认证需要在请求发起时自定义添加头部satoken 好那么问题来了,我请求的时候看我的请求头是存在satoken这个头部信息的 但我在springboot的拦截…