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

k8s docker总结特殊点

k8s docker总结特殊点

  • 前言
  • 一、docker 的驱动。
    • 1、cgroup:(Control Groups)
    • 2、日志驱动(log driver)
    • 3、存储驱动
    • 4、网络驱动:
  • 二、k8s中网络插件(常用calico,次flannel)
    • **Flannel:**
    • **Calico:**
    • **Weave:**
    • **Cilium:**
    • **Antrea:**
  • 三、Dockerfile中极个别字段作用、区别
    • ADD、COPY
    • CMD 、RUN、ENTRYPOINT
  • 四、k8s中pv回收策略的异同点
    • Retain:
    • Recycle:
    • Delete:
    • 异同点:
      • 手动处理 vs. 自动处理:
      • 数据处理方式:
      • 数据安全性:
      • 适用场景:
  • 五、k8s如何管控一个有状态集从开始创建到卷挂载绑定再到svc,最后到容器正常运行
    • 用户创建 StatefulSet 对象:
    • kube-controller-manager 创建 StatefulSet 控制器:
    • kube-scheduler 调度 Pod:
    • 创建 PersistentVolumeClaim(PVC):
    • Pod 启动及 Volume 挂载:
    • 创建 Headless Service:


前言

多点docker、k8s了解与某些参数配置的异同点,出现问题便于排查,有助于学习。


一、docker 的驱动。

看一个/etc/docker/daemon.json
显而易见的driver有cgroupdriver、log-driver
优先看他俩:

1、cgroup:(Control Groups)

查看本地所使用的

docker info | grep "Cgroup Driver"

概念: cgroup 是 Linux 内核提供的一种机制,用于限制、账户和隔离进程组。目前使用最多的systemd,次cgroupfs。其他作为了解

错误:最常见的是当你k8s某些服务器资源重启后加入不了集群时,一看报错驱动问题

cgroupfs: cgroupfs 是 Docker 最早支持的 cgroup 驱动,它使用 cgroup 文件系统进行资源管理和隔离。这是 Docker 1.13 之前版本的默认 cgroup 驱动。

systemd: systemd 是 Linux 上的一个系统和服务管理器,也是一种 cgroup 驱动。Docker 可以通过配置使用 systemd 作为 cgroup 驱动,这种方式通常与运行 systemd 的系统集成得更好。

unified(Unified Control Group): 统一的 cgroup 驱动是 Linux 4.5 及以上内核引入的,它将 cgroup v1 和 cgroup v2 合并为一个单一的层次结构。Docker 从版本 20.10 开始默认使用 unified cgroup 驱动。这种驱动对 cgroup v2 的支持更为完整,但仍然保留对 cgroup v1 的兼容性。

{"data-root": "/var/lib/docker","exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com"], "insecure-registries": ["127.0.0.1/8","k8s.harbor.com"],"max-concurrent-downloads": 10,"live-restore": true,"log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "50m","max-file": "1"},"storage-driver": "overlay2"
}

2、日志驱动(log driver)

**概念:**用于处理和存储容器的日志。以下是一些常见的 Docker 日志驱动:最常用的json-file、syslog。其他作为了解

错误:当某些开源软件部署方面遇到syslog错误时,那可能就是你开源软件自定义了log驱动与你本地docker环境log驱动不匹配导致。

json-file: 默认的日志驱动,将容器的标准输出和标准错误输出保存到 JSON 格式的文件中。可以使用 docker logs 命令查看容器的日志。

syslog: 将容器日志发送到 syslog(系统日志)中,使其可由宿主机上的 syslog 守护程序处理。这对于集中管理日志非常有用。

journald: 将容器日志发送到 systemd-journald,适用于运行 systemd 的系统。可以使用 journalctl 命令查看容器的日志。

fluentd: 使用 Fluentd 进行日志收集。Fluentd 是一款开源的日志收集工具,支持灵活的日志传输和处理。

gelf: 将容器日志发送到 Graylog Extended Log Format(GELF)兼容的日志收集器。GELF 是一种结构化的日志格式,适用于分布式日志系统。

awslogs: 将容器日志发送到 Amazon CloudWatch Logs,适用于在 AWS 上运行的容器。

etwlogs: 仅适用于 Windows 容器,将容器日志发送到 Windows Event Tracing for Windows (ETW)。

splunk: 将容器日志发送到 Splunk,适用于使用 Splunk 进行日志分析的环境。

logentries: 将容器日志发送到 Logentries,适用于集中管理和分析日志。

可以通过在运行容器时使用 --log-driver 选项来指定日志驱动。例如:

docker run --log-driver=json-file my-container

要查看系统上可用的日志驱动,可以运行以下命令:

docker info | grep "Logging Driver"

3、存储驱动

概念:存储驱动负责实现镜像和容器存储的组件。基本选用默认overlay2。其他作为了解

overlay2: overlay2 是 Docker 默认的存储驱动,适用于大多数 Linux 发行版。它提供了高性能的联合文件系统,支持镜像分层和容器存储。

aufs: aufs(Advanced Multi-Layered Unification Filesystem)是一个老化的存储驱动,已被 overlay2 取代。aufs 适用于较早版本的 Docker,但在新的内核版本中可能不再受支持。

overlay: overlay 是 overlay2 的前身,也是一个联合文件系统,但相对于 overlay2,它在性能和功能上有一些限制。

btrfs: btrfs 是一种先进的文件系统,Docker 可以使用它作为存储驱动。btrfs 支持快照、复制等高级功能。

devicemapper: devicemapper 是一种基于设备映射技术的存储驱动。它提供了块设备的级别的存储,支持快照和写时复制。

vfs(Virtual File System): vfs 是一种简单的存储驱动,适用于测试和开发环境。它是 Docker 最基本的存储驱动,性能较差,不建议在生产环境中使用。

要查看当前 Docker 实例正在使用的存储驱动,可以运行以下命令:

docker info | grep "Storage Driver"

4、网络驱动:

概念: 允许用户根据应用程序的需求选择合适的网络模式。

bridge: bridge 是 Docker 默认的网络驱动,用于创建容器默认的桥接网络。每个容器都连接到这个默认的桥接网络,可以通过容器名称或 IP 地址直接相互通信。

docker run --network bridge my-container

host: host 网络模式允许容器共享主机的网络命名空间,即与主机相同的网络。这样容器可以直接使用主机的网络配置,适用于性能敏感的场景。

docker run --network host my-container

none: none 网络模式会禁用容器的网络栈,使其无法访问网络。适用于特定安全场景或仅需要本地 IPC 通信的容器。

docker run --network none my-container

overlay: overlay 网络模式用于创建多主机之间的覆盖网络。适用于跨多个主机的容器通信,通常与 Docker Swarm 结合使用。

docker run --network overlay my-container

macvlan: macvlan 允许容器直接映射到物理网络,每个容器都有唯一的 MAC 地址。适用于需要容器直接暴露到物理网络的场景。

docker run --network macvlan my-container

ipvlan: ipvlan 类似于 macvlan,但允许多个容器共享相同的 MAC 地址。适用于需要在物理网络上分配 IP 地址的场景。

docker run --network ipvlan my-container

bridge、host、none 的自定义桥接网络: 可以使用 bridge、host 或 none 模式创建自定义桥接网络,通过 docker network create 命令。

docker network create my-bridge-network
docker run --network my-bridge-network my-container

二、k8s中网络插件(常用calico,次flannel)

**网络插件:**用于配置容器间的通信和网络策略。这些网络插件负责实现 Kubernetes 群集中 Pod 之间的网络通信。

Flannel:

特点: Flannel 是一个简单且易于部署的网络插件,使用基于层级的虚拟网络(Overlay Network)实现容器间的通信。
工作原理: 使用 VXLAN 或 UDP 封装技术在不同节点上创建虚拟网络,允许 Pod 通过该虚拟网络进行通信。
适用场景: 适用于需要快速部署和简单网络配置的场景。

Calico:

特点: Calico 是一个开源的网络插件,提供了强大的网络策略和安全性功能。它支持 BGP 协议用于路由。
工作原理: 使用路由表来处理容器之间的通信,支持网络隔离和安全策略
适用场景: 适用于需要强大网络策略和安全性的场景,特别是多租户环境。

Weave:

特点: Weave 是一个轻量级的网络插件,支持容器的动态发现和路由。它通过 DNS 提供服务发现功能。
工作原理: 使用虚拟网络技术,包括 Overlay Network 和路由。
适用场景: 适用于需要轻量级网络插件和服务发现的场景。

Cilium:

特点: Cilium 是一个强大的网络和安全插件,支持容器的负载均衡、网络隔离和安全策略。
工作原理: 使用 eBPF(Extended Berkeley Packet Filter)技术,允许对网络数据包进行高级的处理。
适用场景: 适用于需要强大网络功能和安全性的场景,尤其是具有复杂网络需求的环境。

Antrea:

特点: Antrea 是一个基于 Open vSwitch(OVS)的网络插件,提供网络策略和安全性功能。
工作原理: 使用 OVS 技术来处理容器之间的通信,并支持网络策略。
适用场景: 适用于需要基于 OVS 的网络插件的场景。

三、Dockerfile中极个别字段作用、区别

ADD、COPY

COPY: 用于将本地文件或目录复制到容器中。它是比较基础的文件复制指令,不做任何解压或处理。

COPY <src> <dest>

ADD: 类似于 COPY,但具有一些额外的功能,如自动解压缩 tar 文件和从 URL 复制文件。由于 ADD 具有更多功能,建议在不需要这些额外功能时使用 COPY。

ADD <src> <dest>

CMD 、RUN、ENTRYPOINT

RUN: 用于在构建时执行命令,通常用于安装软件包、更新系统等。每个 RUN 指令都会在新的镜像层中执行,并在构建期间对镜像进行修改。

RUN apt-get update && apt-get install -y nginx

CMD: 用于定义容器启动时执行的默认命令。它可以在 Dockerfile 中出现多次,但只有最后一次有效。如果用户在启动容器时提供了命令,则会覆盖 CMD。

CMD ["nginx", "-g", "daemon off;"]

ENTRYPOINT: 用于配置容器启动时执行的默认命令,并且这个命令不会被覆盖。如果用户在启动容器时提供了命令,则会被附加到 ENTRYPOINT 后面。ENTRYPOINT 经常与 CMD 结合使用,以提供默认参数。

ENTRYPOINT ["nginx", "-g", "daemon off;"]

四、k8s中pv回收策略的异同点

Retain:

特点: PV 的数据在释放后不会被删除,而是保留在存储中。管理员需要手动处理这些资源。
适用场景: 适用于需要手动处理 PV 数据回收的场景,例如希望保留数据以便进一步分析的情况。

Recycle:

特点: PV 的数据在释放后会被删除,但不同于 Delete 策略,它会尝试简单地清除数据,而不是进行安全擦除。
适用场景: 适用于不需要进行安全擦除、可以简单清除数据的场景。

Delete:

特点: PV 的数据在释放后会被删除,同时 Kubernetes 会尝试使用 Volume 插件进行安全擦除。
适用场景: 适用于需要安全擦除数据的场景,以确保数据不被不相关的用户访问。

异同点:

手动处理 vs. 自动处理:

Retain: 需要管理员手动处理 PV 中的数据,确保数据的安全存储或进一步使用。
Recycle 和 Delete: Kubernetes 会自动处理 PV 中的数据,但它们的处理方式不同。

数据处理方式:

Recycle: 简单地清除 PV 中的数据,不进行安全擦除。
Delete: 尝试使用 Volume 插件进行安全擦除,以确保数据不被不相关的用户访问。

数据安全性:

Retain 和 Delete: 提供更高水平的数据安全性,特别是在涉及敏感数据时。
Recycle: 提供较低水平的数据安全性,因为它不执行安全擦除。

适用场景:

Retain: 适用于需要手动处理数据的场景,如进一步分析或备份。
Recycle: 适用于不需要安全擦除、可以简单清除数据的场景。
Delete: 适用于需要安全擦除数据的场景,以确保数据不被不相关的用

五、k8s如何管控一个有状态集从开始创建到卷挂载绑定再到svc,最后到容器正常运行

在 Kubernetes 中,有状态服务集(StatefulSet)的创建和管理涉及多个组件的协同工作。以下是从创建开始到 StatefulSet 中的 Pod 正常运行的主要过程:

用户创建 StatefulSet 对象:

用户通过定义 StatefulSet 对象来描述有状态服务集的规模、模板和其他配置。StatefulSet 中包含有关每个 Pod 的模板以及 PVC 模板。
kube-apiserver 接收 StatefulSet 配置:

用户提交 StatefulSet 配置时,kube-apiserver 接收并验证配置信息,然后将其保存到 etcd 中。这将触发后续的控制器和调度过程。

kube-controller-manager 创建 StatefulSet 控制器:

kube-controller-manager 中包含 StatefulSet 控制器,该控制器监视 etcd 中的 StatefulSet 配置。
控制器检测到 StatefulSet 的创建后,根据规模信息开始创建 Pod。

kube-scheduler 调度 Pod:

kube-scheduler 负责将新创建的 Pod 分配到集群中的节点上。对于有状态服务,调度时需要考虑 Pod 的唯一性、亲和性和反亲和性规则。
每个 Pod 根据 StatefulSet 中定义的模板和 PVC 模板进行创建。

创建 PersistentVolumeClaim(PVC):

StatefulSet 中的每个 Pod 都有一个对应的 PersistentVolumeClaim(PVC)。PVC 描述了 Pod 对存储的需求。PVC 根据模板创建,并绑定到可用的 PersistentVolume(PV)上。

Pod 启动及 Volume 挂载:

kubelet 接收到 Pod 的配置信息后,在节点上创建容器,并根据 PVC 中定义的 Volume 挂载到指定的路径。这使应用程序可以使用这个持久化存储。

创建 Headless Service:

StatefulSet 通常与 Headless Service 结合使用。这个服务的 Cluster IP 为 None,每个 Pod 都有唯一的 DNS 记录,例如 web-0.service-name.namespace.svc.cluster.local。
Headless Service 为有状态服务提供唯一的网络标识符,确保每个 Pod 具有独特的 DNS 记录。
Pod 正常运行:

控制器负责监控 StatefulSet 中的 Pod,并确保它们按照定义正常运行。每个 Pod 具有唯一的标识符和关联的 PVC 和 PV。
Pod 的唯一性、持久化存储和网络标识符等特性使有状态服务能够保持稳定和可靠的运行状态。
整个过程中,kube-apiserver 接收和存储配置信息,kube-controller-manager 创建和监控控制器,kube-scheduler 负责调度 Pod,kubelet 负责在节点上创建和监控容器。同时,Headless Service 提供唯一的网络标识符,PersistentVolume 和 PersistentVolumeClaim 提供持久化存储,确保有状态服务集的正确运行。

相关文章:

k8s docker总结特殊点

k8s docker总结特殊点 前言一、docker 的驱动。1、cgroup:&#xff08;Control Groups&#xff09;2、日志驱动&#xff08;log driver&#xff09;3、存储驱动4、网络驱动&#xff1a; 二、k8s中网络插件&#xff08;常用calico&#xff0c;次flannel&#xff09;**Flannel:**…...

区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第四套区块链应用后端开发

第四套区块链应用后端开发 环境 : ubuntu20 fisco : 2.8.0 springboot 2.1.1 fisco-java-sdk: 2.7.2 maven 3.8.8 前言 这套后端样题,只涉及调用fisco的系统接口,不涉及此食品溯源项目的业务接口,所以我就直接生成一个springboot项目进行完成此题目。 请提前准备好一…...

《向量数据库指南》——向量数据库Milvus Cloud搭建Excel公式编辑器助手

引言 在日常工作中,Excel是我们经常使用的办公工具,而熟练应用Excel公式对于提高工作效率非常重要。然而,有时候我们会遇到一些复杂的需求,需要用到较为专业的Excel公式,而这正是Excel公式编辑器助手的用武之地。本文将介绍如何利用向量数据库Milvus Cloud搭建GPT大模型和…...

qgis添加arcgis的FeatureServer

左侧浏览器-ArcGIS要素服务器-新建连接 http://sampleserver6.arcgisonline.com/arcgis/rest/services/ 展开-双击即可...

java进阶---多态

多态的概述 什么是多态 同一个对象,在不同时刻表现出来的不同形态 多态的前提 要有继承或实现关系要有方法的重写要有父类引用指向子类对象 多态的具体实现 对象的多态是多态的核心和重点 规则: 一个对象的编译类型与运行类型可以不一致编译类型在定义对象时,就确定了,…...

常用脚本-持续更新(文件重命名、视频抽帧、拆帧、删除冗余文件、yolo2xml、转换图片格式、修改xml)

所有代码位置&#xff1a;Learning-Notebook-Codes/Python/常用脚本 1. 文件重命名 脚本路径&#xff1a;codes/files_rename.py脚本说明&#xff1a;可以自动重命名某个文件夹下指定类型的文件。 修改前文件名称: img1.jpg修改后文件名称: Le0v1n-20231123-X-0001.jpg imp…...

百度文心一言(千帆大模型)聊天API使用指导

开篇不得不吐槽下百度&#xff0c;百度智能云平台首页跳转千帆大模型平台的按钮太多了&#xff0c;不同按钮跳转不同的子页面&#xff0c;不熟悉的&#xff0c;能把人找懵。入口太多&#xff0c;就导致用户不知道从何开始。本文就从一个前端开发人员的角度&#xff0c;教大家快…...

C++知识点总结(7):玩转高精度除法

一、复习高低精度 一个数分为两种类型&#xff1a; 1. 高精度数&#xff0c;即一个长度特别长的数&#xff0c;使用 long long 也无法存储的一类数字。 2. 低精度数&#xff0c;即一个普通的数&#xff0c;可以使用 long long 来存储。 由于高精度除法比较简单&#xff0c;…...

LeetCode算法题解(动态规划,背包问题)|LeetCode1049. 最后一块石头的重量 II、LeetCode494. 目标和

一、LeetCode1049. 最后一块石头的重量 II 题目链接&#xff1a;1049. 最后一块石头的重量 II 题目描述&#xff1a; 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将…...

使用Pytorch从零开始构建LSTM

长短期记忆&#xff08;LSTM&#xff09;网络已被广泛用于解决各种顺序任务。让我们了解这些网络如何工作以及如何实施它们。 就像我们一样&#xff0c;循环神经网络&#xff08;RNN&#xff09;也可能很健忘。这种与短期记忆的斗争导致 RNN 在大多数任务中失去有效性。不过&a…...

qRT-PCR相对定量计算详解qPCR相对定量计算方式——2^-(∆∆Ct) deta t

做完转录组分析之后&#xff0c;一般都要求做qRT-PCR来验证二代测序得到的转录本表达是否可靠。荧光定量PCR是一种相对表达定量的方法&#xff0c;他的计算方法有很多&#xff0c;常用的相对定量数据分析方法有双标曲线法&#xff0c;ΔCt法&#xff0c;2^-ΔΔCt法(Livak法)&a…...

BART non-Cartesian 重建:并行成像 压缩感知

本文主要使用并行成像和压缩感知方法实现non-Cartesian MRI 数据的重建。 目录 1 自定义MRI kspace trajectory 2 自定义该 trajectory下的多通道MRI数据 3 使用NUFFT 直接做欠采样数据的重建...

UDP客户端使用connect与UDP服务器使用send函数和recv函数收发数据

服务器代码编译运行 服务器udpconnectToServer.c的代码如下&#xff1a; #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<arpa/inet.h> #include<sys/socket.h> #include<errno.h> #inclu…...

SLAM ORB-SLAM2(9)闭环检测器

SLAM ORB-SLAM2(9)闭环检测器 1. LoopClosing2. 成员变量2.1. 系统成员变量2.2. 关键帧2.3. 共视关系2.4. 闭环检测2.5. 全局 BA(光束法平差)2.6. 其他操作3. 成员函数3.1. 构造函数3.2. 主要函数3.3. 更新操作3.4. 标识设置和查询接口1. LoopClosing 在《SLAM ORB-SLAM2(…...

目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】SLAM(基础篇)(二)

目录 知识储备 概率论基础 边缘概率 联合概率和独立 独立与条件独立...

TikTok 将开源“云中和”边缘加速器

“从某种意义上说&#xff0c;我们正在努力破解云的骨干网&#xff0c;以造福于我们&#xff0c;”TikTok产品管理基础设施经理Vikram Siwach指出&#xff0c;他解释了该公司即将开源的“全球服务加速器”的好处&#xff0c;这是一个可编程的边缘平台&#xff0c;可将应用程序需…...

【通讯协议】REST API vs GraphQL

在API设计方面&#xff0c;REST和GraphQL各有缺点。下图显示了 REST 和 GraphQL 之间的快速比较。 REST 使用标准 HTTP 方法&#xff08;如 GET、POST、PUT、DELETE&#xff09;进行 CRUD 操作。当您需要在单独的服务/应用程序之间提供简单、统一的接口时&#xff0c;效果很好…...

Linux在安装epel-release时,报错epel-release-7-14.noarch.rpm 的公钥尚未安装

Linux在安装epel-release时报错&#xff1a; [rootXWDBDEV01 ~]# yum install epel-release 已加载插件&#xff1a;fastestmirror, langpacks, product-id, search-disabled-repos, subscription-managerThis system is not registered with an entitlement server. You can …...

在 STM32 上实现温度补偿和校正

本文介绍了如何在 STM32 微控制器上实现温度补偿和校正&#xff0c;以提高温度传感器的测量精度。首先&#xff0c;我们将简要介绍温度补偿和校正的原理和目的。然后&#xff0c;我们将详细讨论在 STM32 上实现温度补偿和校正的步骤和方法。同时&#xff0c;提供了一个简单的示…...

PasteNow for mac剪贴板工具

PasteNow 是一款简单易用的剪贴板管理工具&#xff0c;可帮助用户快速存储和管理剪贴板上的文本和图片内容。用户可以使用 PasteNow 软件快速将文本内容保存到不同的笔记或页面中&#xff0c;也可以方便地将剪贴板上的图片保存到本地或分享给其他应用程序。 此外&#xff0c;P…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者&#xff0c;高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法&#xff0c;分为两大系列&#xff1a; 一、getElementBy... 系列 传统方法&#xff0c;直接通过 DOM 接口访问&#xff0c;返回动态集合&#xff08;元素变化会实时更新&#xff09;。…...