当前位置: 首页 > news >正文

Docker数据卷容器实战

数据卷容器

数据共享

上面讲述的是主机和容器之间共享数据,那么如何实现容器和容器之间的共享数据呢?那就是创建 创建数据卷容器

命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为 数据卷容器(Data Volume Container)

通俗地来说,docker 容器数据卷可以看成使我们生活中常用的 U 盘,它存在于一个或多个的容器中,由 docker 挂载到容器,但不属于联合文件系统,Docker 不会在容器删除时删除其挂载的数据卷。在创建一个容器时候,使用命令绑定一个父容器,这个父容器就是 数据卷容器

特点:

  • 数据卷可以在容器之间共享或重用数据
  • 数据卷中的更改可以直接生效
  • 数据卷中的更改不会包含在镜像的更新中
  • 数据卷的生命周期一直持续到没有容器使用它为止

命令格式:docker run --volumes-from <数据卷容器名> <镜像名[:TAG | ID]>

创建三个容器 tomcat10、tomcat11、tomcat12,其中 tomcat10 是数据卷容器

[root@k8s-master ~]# docker run -d -P --name tomcat10 -v tomcat10:/usr/local/tomcat/webapps tomcat:8.5.73
c96daf52665e7955a7f34c513c9dd5be7a2206e4f7b3519a365a289bbe78f9d6
[root@k8s-master ~]# docker run -d -P --name tomcat11 --volumes-from tomcat10 tomcat:8.5.73
fd1460b6394c4085170298d0916a521669d4d5050086450b151b41fba97e3c19
[root@k8s-master ~]# docker run -d -P --name tomcat12 --volumes-from tomcat10 tomcat:8.5.73
e023742c8c9f6afcf24bb53861ecfd21c7abb0042ea096c544826d1106b9a983

 证明三个容器的数据是否共享

已经创建好三个容器,并且 tomcat10 容器的数据卷目录是 tomcat10。我们可以在 tomcat10 容器的 webapps 目录下创建一个 test.txt 文件,看看 tomcat11 容器和 tomcat12 容器的 webapps 是否同步数据。

首先进入 tomcat10 容器的 webapps 目录,创建 test.txt 文件

[root@k8s-master ~]# docker exec -it tomcat10 /bin/bash
root@c96daf52665e:/usr/local/tomcat# cd webapps
webapps/      webapps.dist/ 
root@c96daf52665e:/usr/local/tomcat# cd webapps/
root@c96daf52665e:/usr/local/tomcat/webapps# touch test1.txt
root@c96daf52665e:/usr/local/tomcat/webapps# ls 
test1.txt

 然后我们进入 tomcat11 容器,看文件是否同步过来,并且创建 test2.txt 文件

[root@k8s-master u]# docker exec -it tomcat11 /bin/bash
root@fd1460b6394c:/usr/local/tomcat# cd webapps/
root@fd1460b6394c:/usr/local/tomcat/webapps# ls -l
total 0
-rw-r--r--. 1 root root 0 Feb 27 12:24 test1.txt

然后我们进入 tomcat12 容器,看文件是否同步过来

[root@k8s-master u]# docker exec -it tomcat12 /bin/bash
root@e023742c8c9f:/usr/local/tomcat# cd webapps/
root@e023742c8c9f:/usr/local/tomcat/webapps# ls -l
total 0
-rw-r--r--. 1 root root 0 Feb 27 12:24 test1.txt

 最后我们看看宿主机的挂载目录

[root@k8s-master ~]# cd /var/lib/docker/volumes/tomcat10/_data/
[root@k8s-master _data]# ls
test1.txt

 

如果删除了挂载的容器(包括 dbdata、db1 和 db2),数据卷并不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用 docker rm -v 命令来指定同时删除关联的容器。这可以让用户在容器之间升级和移动数据卷。 

数据备份

可以利用数据卷对其中的数据进行进行备份、恢复。

数据备份命令格式:docker run [options] --volumes-from <数据卷容器> [-v <宿主机绝对路径>:<随机路径>] <镜像名>:[TAG | ID] tar cvf <随机路径/备份名> <数据卷容器路径>

 不指定宿主机挂载目录下和容器备份目录,备份 tomcat10 容器的数据卷 webapps 目录

[root@k8s-master _data]# docker run --name tomcat-backup --volumes-from tomcat10 tomcat:8.5.73 tar cvf /backup.tar /usr/local/tomcat/webapps
tar: Removing leading `/' from member names
/usr/local/tomcat/webapps/
/usr/local/tomcat/webapps/test1.txt
[root@k8s-master _data]# find / -name backup.tar
/var/lib/docker/overlay2/bc35ab2d75946a2392d68ddd0872a9656b3013a0da8e771ee4bea0dfc1bdbda2/diff/backup.tar

如果容器删除,那么该方式的备份文件也被删除,并且备份目录是容器 ID 命名,并非容器名,看一长串字符串就知道了。 

指定宿主机挂载目录下和容器备份目录,备份 tomcat10 容器的数据卷 webapps 目录 

[root@k8s-master _data]# docker run --volumes-from tomcat10 -v /opt/backup:/backup tomcat:8.5.73 tar cvf /backup/backup.tar /usr/local/tomcat/webapps
tar: Removing leading `/' from member names
/usr/local/tomcat/webapps/
/usr/local/tomcat/webapps/test1.txt
[root@k8s-master _data]# find / -name backup.tar
/var/lib/docker/overlay2/bc35ab2d75946a2392d68ddd0872a9656b3013a0da8e771ee4bea0dfc1bdbda2/diff/backup.tar
/opt/backup/backup.tar

 注意:容器的挂载路径要和备份的文件路径保持一致,才能备份成功。

数据恢复

备份了数据,那么就需要进行数据恢复。

恢复命令格式:docker run --volumes-from <恢复到哪个数据卷容器> [-v <宿主机绝对路径>:<随机路径>] <镜像名>[:TAG | ID] tar xvf <随机路径 | 路径>

 数据恢复到 tomcat20 容器的数据卷里

[root@k8s-master _data]# docker run -d --name tomcat20 -v tomcat20:/usr/local/tomcat/webapps tomcat:8.5.73
6b1b3fa0e74149197449bf0129771ff462f781d7c476365df9da1c0cc80fecd7[root@k8s-master _data]# 
[root@k8s-master _data]# docker run --volumes-from tomcat20 -v /opt/backup:/backup tomcat:8.5.73 tar xvf /backup/backup.tar -C /usr/local/tomcat/webapps/
usr/local/tomcat/webapps/test1.txt

-C / 代表解压到根目录下,因为压缩包的文件基于根目录的,否则解压的目录是基于 /backup

原理:此时 tomcat20 挂载目录是 /usr/local/tomcat/webapps,而新的容器只要挂载了 tomcat20 容器,它们两个的 /usr/local/tomcat/webapps 形成关联,新的容器的这个目录发生改变,则 tomcat20 的挂载目录也会发生改变,所以解压文件到新的容器的该目录下,实际上也是解压文件到 tomcat20 的挂载目录下,也就是实现恢复数据。

[root@k8s-master _data]# docker exec -it tomcat20 /bin/bash
root@6b1b3fa0e741:/usr/local/tomcat# cd webapps/
root@6b1b3fa0e741:/usr/local/tomcat/webapps# ls
test1.txt

 

挂载特性

关于到底是宿主机的挂载目录覆盖容器的挂载目录,还是反过来覆盖:

  • 默认目录挂载:
    • 当宿主机挂载目录已经存在时,双方挂载完成后,宿主机挂载目录覆盖容器挂载目录
    • 当宿主机挂载目录不存在时,双方挂载完成后,容器挂载目录覆盖宿主机挂载目录
  • 具体目录挂载
    • 当宿主机挂载目录无论存不存在,双方挂载完成后,宿主机挂载目录都会覆盖容器挂载目录

默认目录挂载

宿主机容器运行结果
文件存在文件存在挂载成功,宿主机文件内容覆盖容器文件内容
目录存在目录存在挂载成功,宿主机目录内容覆盖容器目录内容
..................
文件不存在文件存在挂载成功,容器文件内容覆盖宿主机文件内容
目录不存在目录存在挂载成功,容器目录内容覆盖宿主机目录内容
..................
其他和 具体目录挂载 类似

具体目录挂载

宿主机容器运行结果
文件存在文件存在挂载成功,宿主机文件内容覆盖容器文件内容
目录存在目录存在挂载成功,宿主机目录内容覆盖容器目录内容
------------------
文件不存在文件存在挂载成功,宿主机创建空文件,并覆盖掉容器的文件,导致也为空
目录不存在目录存在挂载成功,宿主机创建空目录,并覆盖掉容器的文件,导致也为空
------------------
文件存在文件不存在挂载成功
目录存在目录不存在挂载成功
------------------
文件存在目录存在容器启动失败
目录存在文件存在容器启动失败
------------------
目录不存在目录不存在挂载成功,Docker 会自动在宿主机和容器内新建目录
目录不存在文件存在容器启动失败
目录不存在目录存在挂载成功,宿主机空目录内容覆盖容器内目录(空)

相关文章:

Docker数据卷容器实战

数据卷容器 数据共享 上面讲述的是主机和容器之间共享数据&#xff0c;那么如何实现容器和容器之间的共享数据呢&#xff1f;那就是创建 创建数据卷容器。 命名的容器挂载数据卷&#xff0c;其他容器通过挂载这个&#xff08;父容器&#xff09;实现数据共享&#xff0c;挂载…...

基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南

基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南 基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南 基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南一、注册火山引擎账号二、RAG技术核心原理三、环境与工具准备1. 核心组件2. 依赖配…...

Java内存的堆(堆内、堆外)、栈含义理解笔记

一、核心概念区分 1. 内存中的堆&#xff08;Heap&#xff09;与栈&#xff08;Stack&#xff09; 栈内存 ▸ 用途&#xff1a;存储方法调用、局部变量、基本类型数据&#xff08;如 int a 1&#xff09; ▸ 特点&#xff1a; 线程私有&#xff0c;每个线程独立分配栈空间。…...

2.7 大模型RAG内容安全合规检查-大模型ACP模拟题-真题

单选题 在RAG应用中&#xff0c;输入内容合规检查的正确顺序是&#xff1f; A. 先处理模型生成&#xff0c;后检查用户输入 B. 先检查用户输入&#xff0c;后处理模型生成 ✅ C. 仅检查用户输入 D. 仅检查模型输出 解析&#xff1a;合规流程应优先过滤用户输入风险&#xff0…...

C#从入门到精通(35)—如何防止winform程序因为误操作被关闭

前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发的上位机软件运行起来以后,一般在右上角都有一个关闭按钮,正常情况下点击关闭按钮就能关闭软件,但是不排除我们不想关闭软件,但是因为不…...

特斯拉 FSD 算法深度剖析:软件层面全解读

一、引言 特斯拉的 FSD&#xff08;Full Self-Driving&#xff09;系统作为自动驾驶领域的前沿成果&#xff0c;其软件层面的算法设计至关重要。本文将从软件的角度&#xff0c;深入探讨特斯拉 FSD 所采用的算法&#xff0c;包括感知、规划、控制等多个方面&#xff0c;以期为…...

中央一号文件里的三维革命:数字孪生如何重构智慧乡村生态?

2024年中央一号文件提出"建设宜居宜业和美乡村"&#xff0c;这一目标背后离不开数字技术的支撑。在浙江某数字乡村试点&#xff0c;凡拓数创通过三维建模还原整村风貌&#xff0c;路灯能耗、垃圾分类、古建保护等数据在虚拟空间中实时跳动。管理人员坦言&#xff1a;…...

DeepSeek 助力 Vue3 开发:打造丝滑的页眉(Header)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

一个原教旨的多路径 TCP

前面提到过 ECMP 和 TCP 之间的互不友好&#xff0c;pacing 收益和中断开销的互斥&#xff0c;在事实上阻碍了 packet-based LB 的部署&#xff0c;也限制了交换机&#xff0c;服务器的并发性能&#xff0c;同时潜在增加了 bufferbloat 的概率&#xff0c;而适用 packet-based …...

DDD 架构之领域驱动设计【通俗易懂】

文章目录 1. 前言2. MVC 对比 DDD3. DDD 分层架构4. 完整业务流程 1. 前言 官方回答&#xff1a;DDD是一种应对复杂业务系统的设计方法&#xff0c;通过将软件设计与业务领域紧密结合&#xff0c;帮助开发人员构建清晰、可维护的领域模型。在复杂的业务系统中&#xff0c;它能…...

蓝桥杯15届JavaB组6题

一开始用的dfs&#xff0c;但是好像是因为数据量太大&#xff0c;数据错误&#xff0c;而且会超时&#xff0c;然后使用bfs dfs的代码&#xff08;自留&#xff09;&#xff1a; import java.util.*;public class F15 {public static void main(String[] args) {Scanner sc n…...

Python 爬虫与网络安全有什么关系

Python爬虫和网络安全之间存在密切的关系。爬虫是一种用于自动化从网络上获取信息的程序&#xff0c;而网络安全是保护计算机网络和系统免受未经授权的访问、攻击和数据泄露的实践。本文将探讨Python爬虫与网络安全之间的关系以及如何在爬虫开发中注意网络安全。 爬虫的作用和…...

如何判断数据是否使用AES加密以及如何使用AES解密

在现代软件开发中&#xff0c;数据加密是保护敏感信息的重要手段。AES&#xff08;Advanced Encryption Standard&#xff09;是一种广泛使用的对称加密算法&#xff0c;因其安全性和高效性而被广泛应用。本文将介绍如何判断数据是否使用AES加密&#xff0c;并详细讲解如何使用…...

C++ Primer 泛型算法结构

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…...

java给钉钉邮箱发送邮件

1.开通POP和IMAP 2.引入pom <dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version> </dependency>3.逻辑 String host "smtp.qiye.aliyun.com"; String port "…...

交安ABC-公路水运工程企业安全员ABC如何报名?报名要哪些条件?

交安ABC的报名方式及报名条件如下&#xff1a; 报名方式 1. 企业注册&#xff1a;企业要进入交通运输部公路水运工程施工主要负责人和安全生产管理人员信息管理系统&#xff0c;注册企业账户&#xff0c;提交企业相关信息&#xff0c;填写企业资料。 2. 发送审核&#xff…...

软件测试丨Docker与虚拟机架构对比分析

Docker 与虚拟机&#xff08;VM&#xff09;在架构上有显著区别&#xff0c;主要体现在资源利用、性能、隔离性和启动时间等方面。以下是两者的主要架构区别&#xff1a; 1. 架构层次 Docker: 主机操作系统&#xff1a;Docker 直接运行在宿主机的操作系统上。Docker 引擎&…...

Gatling介绍

Gatling&#xff1a;基于Scala的高性能负载测试工具 一、Gatling 简介 Gatling 是一个开源的 HTTP 压力测试工具&#xff0c;专为高并发场景设计&#xff0c;支持 HTTP/HTTPS、WebSocket、Kafka 等协议。其基于 Scala 的脚本语法简洁高效&#xff0c;支持实时报告生成和分布式…...

Shot Studio for macOS 发布 1.0.2

Shot Studio 是一个 macOS 的 app&#xff0c;专门为开发者设计&#xff0c;主要用于各大 app 应用商店的预览图设计。 提供了非常多的模板&#xff0c;也预设了很多尺寸。可以直接一键使用 在 1.0.2 这个版本中新增了&#xff1a; 文本渐变 图层&#xff1a;边框、颜色、圆…...

基于Spring Boot的乡村养老服务管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

Harbor服务需要crt证书,而下载是nginx的证书pem,应该怎么处理

1. 明确文件用途 shgbitai.com.key&#xff1a;SSL 私钥文件&#xff08;与 Apache/Nginx 通用&#xff09;。shgbitai.com.pem&#xff1a;已合并的证书文件&#xff08;通常包含域名证书 中间证书链&#xff09;。 Nginx 的证书通常以 .pem 或 .crt 为后缀&#xff0c;而 …...

Hadoop第一课(配置linux系统)

1、让hadoop用户&#xff0c;有root权限&#xff0c;如果可以不输密码更好&#xff1a; (1)先登入root用户 (2)visudo命令进入配置文件 (3)找到 root ALL(ALL) ALL这一行&#xff0c;在该行下面增加:hadoop ALL(ALL) ALL &#xff08;&#xff1a;set nu可以显示行号&#xff…...

Java+Vue+uniapp微信小程序校园自助打印系统(程序+论文+讲解+安装+调试+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统介绍 在当今时代&#xff0c;网络与科学技术正以前所未有的速度迅猛发展&#xff0c;这股强大…...

QT 中的元对象系统(二):元对象实现原理QMetaObject

目录 1.元对象系统的构成 2.QObject和QMetaObject的关系 3.Qt 元对象模型QMetaObject 3.1.基本信息 3.2.类信息classinfo 3.3.类构造函数constructor 3.4.枚举信息 enumerator 3.5.类方法method 3.6.类属性peoproty 4.MOS(Meta Object System)示例 5.总结 1.元对象系…...

C++:指针函数与函数指针

文章目录 概述什么是指针函数&#xff08;Pointer Function&#xff09;什么是函数指针&#xff08;Function Pointer&#xff09;总结&#xff1a; 概述 什么是指针函数&#xff08;Pointer Function&#xff09; 指针函数是指返回类型为指针的函数。即&#xff0c;函数返回…...

用HTML5+CSS+JavaScript实现新奇挂钟动画

用HTML5+CSS+JavaScript实现新奇挂钟动画 引言 在技术博客中,如何吸引粉丝并保持他们的关注?除了干货内容,独特的视觉效果也是关键。今天,我们将通过HTML5、CSS和JavaScript实现一个新奇挂钟动画,并将其嵌入到你的网站中。这个动画不仅能让你的网站脱颖而出,还能展示你的…...

【MySQL篇】表的操作

1&#xff0c;创建表 语法&#xff1a; create table ( field1 datatype, field2 datatype, field3 datatype )charset 字符集 collate 校验规则 engine 存储引擎; 说明&#xff1a; field表示列名datatype表示列的类型charset字符集&#xff0c;如果没有指明&#xff0c;则…...

CCF-CSP历年真题大全附题解python

2023012的真题 202312-1 仓库规划 5415. 仓库规划 - AcWing题库高质量的算法题库https://www.acwing.com/problem/content/5418/ 解题思路&#xff1a; 其实就是对比&#xff08;x.y,z.....&#xff09;需要找到一个每个元素都大于这个坐标得坐标&#xff0c;本题可以直接…...

Mysql——约束与多表查询

一、约束 1.1定义 约束是对表中的数据进行限制的一套规则&#xff0c;用于防止用户向数据库中输入无效数据。它可以保证表中的数据满足特定业务规则和逻辑&#xff0c;从而维护数据的准确性和可靠性。 1.2作用 数据完整性 &#xff1a;约束可以确保数据在插入、更新或删除时符…...

如何看待 Kaiming He 最新提出的 Fractal Generative Models ?

何恺明团队提出的分形生成模型(Fractal Generative Models) 引发了广泛关注,其核心思想是通过递归调用生成模型模块构建自相似结构,类似数学中的分形概念(如雪花结构),从而高效生成高分辨率数据(如图像)。 Fractal Generative Models即分形生成模型,是一种新型的生成…...

【大模型系列篇】如何解决DeepSeek-R1结构化输出问题,使用PydanticAl和DeepSeek构建结构化Agent

今日号外&#xff1a;&#x1f525;&#x1f525;&#x1f525; DeepSeek开源周&#xff1a;炸场&#xff01;DeepSeek开源FlashMLA&#xff0c;提升GPU效率 下面我们开始今天的主题&#xff0c;deepseek官方明确表示deepseek-r1目前不支持json输出/function call&#xff0c;可…...

Metal 学习笔记五:3D变换

在上一章中&#xff0c;您通过在 vertex 函数中计算position&#xff0c;来平移顶点和在屏幕上移动对象。但是&#xff0c;在 3D 空间中&#xff0c;您还想执行更多操作&#xff0c;例如旋转和缩放对象。您还需要一个场景内摄像机&#xff0c;以便您可以在场景中移动。 要移动…...

Android-创建mipmap-anydpi-v26的Logo

利用 Android Studio 自动创建 创建新项目&#xff1a;打开 Android Studio&#xff0c;点击 “Start a new Android Studio project” 创建新项目。在创建项目的过程中&#xff0c;当设置Target SDK Version为 26 或更高版本时&#xff0c;Android Studio 会在项目的res目录下…...

DOM 事件 HTML 标签属性速查手册

以下是一份 DOM 事件 & HTML 标签属性速查手册&#xff0c;涵盖常用场景和示例&#xff0c;助你快速查阅和使用&#xff1a; 一、DOM 事件速查表 1. 鼠标事件 事件名触发时机适用元素示例代码click元素被点击任意可见元素button.addEventListener(click, () > { ... …...

差旅费控平台作用、功能、11款主流产品优劣势对比

本文将对比以下11款主流费控系统&#xff1a;合思、喜报销、泛微费控报销系统、经贝管家、每刻报销、SAP Concur、Expensify、Zoho Expense等。 随着全球化和企业跨地区运营的不断发展&#xff0c;企业差旅管理已逐渐成为许多公司面临的管理挑战之一。从差旅申请到费用报销的全…...

常用的配置文件格式对比(ini,toml,yaml,json,env,settings.py)及应用程序修改自身配置并保留注释

代码与环境配置解耦 git分支的代码应做到“环境无关”&#xff1a;代码本身不硬编码任何环境特定的配置&#xff08;如数据库连接、密钥、API地址&#xff09;&#xff0c;而是通过外部机制动态注入。 配置与代码分离&#xff1a;将配置信息存储在代码库之外&#xff08;如环…...

MySQL 存储过程详解

文章目录 1. 存储过程定义1.1 基本概念1.2 核心特点1.3 存储过程 vs 函数 2. 工作原理与示意图2.1 执行流程2.2 示意图 3. 使用场景3.1 复杂业务逻辑3.2 批量数据处理3.3 权限控制3.4 性能优化 4. 示例与说明4.1 基础示例&#xff1a;创建存储过程4.2 带输出参数的存储过程4.3 …...

使用DeepSeek/chatgpt等AI工具辅助网络协议流量数据包分析

随着deepseek,chatgpt等大模型的能力越来越强大&#xff0c;本文将介绍一下deepseek等LLM在分数流量数据包这方面的能力。为需要借助LLM等大模型辅助分析流量数据包的同学提供参考&#xff0c;也了解一下目前是否有必要继续学习wireshark工具以及复杂的协议知识。 pcap格式 目…...

源码压缩包泄露

##解题思路 因为网站的文件都放在www下面&#xff0c;所以直接访问/www.zip就可以得到网页的源码压缩包 在fl000g.txt这个文件中看到一个flag{flag_here}不像是真的flag&#xff0c;尝试提交ctfshow{flag_here}&#xff0c;果然提交失败 打开文件属性之类的&#xff0c;也没有…...

TCP/IP 5层协议簇:数据链路层(交换机工作原理)

目录 1. 数据链路层 2. 帧 3. 工作在数据链路层的设备 4. 交换机工作原理 1. 数据链路层 数据链路层&#xff08;2层Data Link Layer&#xff09;&#xff1a;传输单元是帧、这层工作的主要设备二层交换机、网卡 2. 帧 帧的结构如下&#xff1a;帧最大1518字节 如下&…...

TCP/IP的分层结构、各层的典型协议,以及与ISO七层模型的差别

1. TCP/IP的分层结构 TCP/IP模型是一个四层模型&#xff0c;主要用于网络通信的设计和实现。它的分层结构如下&#xff1a; (1) 应用层&#xff08;Application Layer&#xff09; 功能&#xff1a;提供应用程序之间的通信服务&#xff0c;处理特定的应用细节。 典型协议&am…...

【分布式理论11】分布式协同之分布式事务(一个应用操作多个资源):从刚性事务到柔性事务的演进

文章目录 一. 什么是分布式事务&#xff1f;二. 分布式事务的挑战三. 事务的ACID特性四. CAP理论与BASE理论1. CAP理论1.1. 三大特性1.2. 三者不能兼得 2. BASE理论 五. 分布式事务解决方案1. 两阶段提交&#xff08;2PC&#xff09;2. TCC&#xff08;Try-Confirm-Cancel&…...

Linux: 已占用接口

Linux: 已占用接口 1. netstat&#xff08;适用于旧系统&#xff09;1.1 书中对该命令的介绍 2. ss&#xff08;适用于新系统&#xff0c;替代 netstat&#xff09;3. lsof&#xff08;查看详细进程信息&#xff09;4. fuser&#xff08;快速查找占用端口的进程&#xff09;5. …...

HWUI 和 Skia

&#x1f4cc; HWUI 和 Skia 的关系 Skia 是 Android 的底层 2D 图形库&#xff0c;提供 CPU 和 GPU 渲染能力&#xff0c;支持 OpenGL、Vulkan、Metal 等后端。HWUI 是 Android UI 组件的 GPU 渲染引擎&#xff0c;主要用于 加速 View、动画、阴影等 UI 元素的绘制。HWUI 依赖…...

Pytorch使用手册--将 PyTorch 模型导出为 ONNX(专题二十六)

注意 截至 PyTorch 2.1,ONNX 导出器有两个版本。 torch.onnx.dynamo_export 是最新的(仍处于测试阶段)导出器,基于 PyTorch 2.0 发布的 TorchDynamo 技术。 torch.onnx.export 基于 TorchScript 后端,自 PyTorch 1.2.0 起可用。 一、torch.onnx.dynamo_export使用 在 60 …...

GitHub SSH连接问题解决指南

&#x1f50d; GitHub SSH连接问题解决指南 问题描述 遇到错误&#xff1a;ssh: connect to host github.com port 22: Connection refused 说明您的网络环境无法访问GitHub的SSH端口22&#xff0c;常见原因&#xff1a; 防火墙/网络运营商限制&#xff08;国内常见&#xf…...

【Linux】vim 设置

【Linux】vim 设置 零、起因 刚学Linux&#xff0c;有时候会重装Linux系统&#xff0c;然后默认的vi不太好用&#xff0c;需要进行一些设置&#xff0c;本文简述如何配置一个好用的vim。 壹、软件安装 sudo apt-get install vim贰、配置路径 对所有用户生效&#xff1a; …...

2025届开发岗秋招经验教训总结

实习 实习的作用&#xff1a; 学习知识&#xff0c;充实简历了解特定部门的氛围转正比秋招提前占坑提前展现工作能力&#xff0c;争取更高起薪 其中&#xff0c;除非有梦中情组&#xff0c;我认为占坑是最不重要的一个&#xff0c;因为现在的校招就业形势并未严峻到转正占满…...

Java 之集成 DataX 数据同步工具

1、官网下载 DataX https://github.com/alibaba/DataX 2、将依赖添加到本地&#xff08;DataX没有maven坐标&#xff0c;需要自己安装&#xff09; mvn install:install-file -Dfile"datax-common-0.0.1.jar" "-DgroupIdcom.datax" "-DartifactIdda…...

JMH 详细使用

JMH 基本使用 官方地址 JMH 是一个用于 Java 代码微基准测试的工具&#xff0c;允许开发者对特定部分进行精确的性能测试&#xff1b; 安装 JMH 环境&#xff1a; Maven 项目&#xff1b;JDK 8&#xff1b; Maven 方式安装 引入如下依赖&#xff1a; <dependencies>…...